use strict;
use warnings;

TEST('adc edi, esi        ', [0x13,0xfe], 'MODE32');
TEST('adc edi, dword [ecx]', [0x13,0x39], 'MODE32');

TEST('add ecx, ecx                     ', [0x03,0xc9                         ], 'MODE32');
TEST('add ecx, 4                       ', [0x83,0xc1,0x04                    ], 'MODE32');
TEST('add ecx, 1                       ', [0x83,0xc1,0x01                    ], 'MODE32');
TEST('add ecx, 2                       ', [0x83,0xc1,0x02                    ], 'MODE32');
TEST('add ecx, dword [eax*4+0x693b6e78]', [0x03,0x0c,0x85,0x78,0x6e,0x3b,0x69], 'MODE32');
TEST('add edi, 4                       ', [0x83,0xc7,0x04                    ], 'MODE32');
TEST('add eax, ecx                     ', [0x03,0xc1                         ], 'MODE32');
TEST('add edi, 8                       ', [0x83,0xc7,0x08                    ], 'MODE32');
TEST('add ecx, 48                      ', [0x83,0xc1,0x30                    ], 'MODE32');
TEST('add ecx, dword [ebp-0x254]       ', [0x03,0x8d,0xac,0xfd,0xff,0xff     ], 'MODE32');
TEST('add dword [ecx], eax             ', [0x01,0x01                         ], 'MODE32');
TEST('add ecx, esi                     ', [0x03,0xce                         ], 'MODE32');
TEST('add ecx, dword [ebp+12]          ', [0x03,0x4d,0x0c                    ], 'MODE32');
TEST('add ecx, 32                      ', [0x83,0xc1,0x20                    ], 'MODE32');
TEST('add ecx, eax                     ', [0x03,0xc8                         ], 'MODE32');
TEST('add edi, 3                       ', [0x83,0xc7,0x03                    ], 'MODE32');
TEST('add edi, 2                       ', [0x83,0xc7,0x02                    ], 'MODE32');
TEST('add edi, 1                       ', [0x83,0xc7,0x01                    ], 'MODE32');
TEST('add edi, eax                     ', [0x03,0xf8                         ], 'MODE32');
TEST('add ecx, eax                     ', [0x01,0xc1                         ], 'MODE32');
TEST('add ecx, dword [eax+0x448b0347]  ', [0x03,0x88,0x47,0x03,0x8b,0x44     ], 'MODE32');
TEST('add esi, ecx                     ', [0x03,0xf1                         ], 'MODE32');
TEST('add ecx, dword [ebp-0x1ae0]      ', [0x03,0x8d,0x20,0xe5,0xff,0xff     ], 'MODE32');
TEST('add ecx, 16                      ', [0x83,0xc1,0x10                    ], 'MODE32');
TEST('add edi, 16                      ', [0x83,0xc7,0x10                    ], 'MODE32');
TEST('add ecx, 0xb0                    ', [0x81,0xc1,0xb0,0x00,0x00,0x00     ], 'MODE32');
TEST('add edx, ecx                     ', [0x03,0xd1                         ], 'MODE32');
TEST('add edi, 24                      ', [0x83,0xc7,0x18                    ], 'MODE32');
TEST('add ecx, 0x1002                  ', [0x81,0xc1,0x02,0x10,0x00,0x00     ], 'MODE32');
TEST('add ecx, 0x1001                  ', [0x81,0xc1,0x01,0x10,0x00,0x00     ], 'MODE32');
TEST('add ecx, 0xffd9                  ', [0x81,0xc1,0xd9,0xff,0x00,0x00     ], 'MODE32');
TEST('add ecx, 0xfff9                  ', [0x81,0xc1,0xf9,0xff,0x00,0x00     ], 'MODE32');
TEST('add ecx, 12                      ', [0x83,0xc1,0x0c                    ], 'MODE32');
TEST('add edi, 12                      ', [0x83,0xc7,0x0c                    ], 'MODE32');
TEST('add ecx, 64                      ', [0x83,0xc1,0x40                    ], 'MODE32');
TEST('add dword [0x693b7130], edi      ', [0x01,0x3d,0x30,0x71,0x3b,0x69     ], 'MODE32');
TEST('add edi, 64                      ', [0x83,0xc7,0x40                    ], 'MODE32');
TEST('add ecx, 0x800                   ', [0x81,0xc1,0x00,0x08,0x00,0x00     ], 'MODE32');
TEST('add esi, edi                     ', [0x03,0xf7                         ], 'MODE32');
TEST('add ecx, edi                     ', [0x03,0xcf                         ], 'MODE32');
TEST('add eax, edi                     ', [0x03,0xc7                         ], 'MODE32');
TEST('add edi, 0xffff                  ', [0x81,0xc7,0xff,0xff,0x00,0x00     ], 'MODE32');
TEST('add ecx, edx                     ', [0x03,0xca                         ], 'MODE32');
TEST('add ecx, dword [edx-4]           ', [0x03,0x4a,0xfc                    ], 'MODE32');
TEST('add edi, edi                     ', [0x03,0xff                         ], 'MODE32');
TEST('add edi, 84                      ', [0x83,0xc7,0x54                    ], 'MODE32');
TEST('add edi, 0xc002                  ', [0x81,0xc7,0x02,0xc0,0x00,0x00     ], 'MODE32');
TEST('add edi, ecx                     ', [0x03,0xf9                         ], 'MODE32');
TEST('add ecx, 80                      ', [0x83,0xc1,0x50                    ], 'MODE32');
TEST('add edi, dword [ebp-20]          ', [0x03,0x7d,0xec                    ], 'MODE32');
TEST('add edi, dword [edx+8]           ', [0x03,0x7a,0x08                    ], 'MODE32');
TEST('add edi, edx                     ', [0x03,0xfa                         ], 'MODE32');
TEST('add rax, 8                       ', [0x48,0x83,0xc0,0x08               ], 'MODE64');
TEST('add rax, 48                      ', [0x48,0x83,0xc0,0x30               ], 'MODE64');
TEST('add rax, 96                      ', [0x48,0x83,0xc0,0x60               ], 'MODE64');
TEST('add rax, 20                      ', [0x48,0x83,0xc0,0x14               ], 'MODE64');
TEST('add rax, 16                      ', [0x48,0x83,0xc0,0x10               ], 'MODE64');
TEST('add r9, rax                      ', [0x4c,0x03,0xc8                    ], 'MODE64');
TEST('add dword [rax], eax             ', [0x01,0x00                         ], 'MODE64');
TEST('add rax, rax                     ', [0x48,0x03,0xc0                    ], 'MODE64');
TEST('add rax, r12                     ', [0x49,0x03,0xc4                    ], 'MODE64');
TEST('add rcx, r12                     ', [0x49,0x03,0xcc                    ], 'MODE64');
TEST('add rdx, r12                     ', [0x49,0x03,0xd4                    ], 'MODE64');
TEST('add r8, r12                      ', [0x4d,0x03,0xc4                    ], 'MODE64');
TEST('add rax, rdx                     ', [0x48,0x03,0xc2                    ], 'MODE64');
TEST('add rax, r14                     ', [0x49,0x03,0xc6                    ], 'MODE64');
TEST('add r12, 2                       ', [0x49,0x83,0xc4,0x02               ], 'MODE64');
TEST('add rdx, rax                     ', [0x48,0x03,0xd0                    ], 'MODE64');
TEST('add rax, 32                      ', [0x48,0x83,0xc0,0x20               ], 'MODE64');
TEST('add rax, r8                      ', [0x49,0x03,0xc0                    ], 'MODE64');
TEST('add rax, rcx                     ', [0x48,0x03,0xc1                    ], 'MODE64');
TEST('add rax, r15                     ', [0x49,0x03,0xc7                    ], 'MODE64');
TEST('add rax, 2                       ', [0x48,0x83,0xc0,0x02               ], 'MODE64');
TEST('add rax, 0xb00                   ', [0x48,0x05,0x00,0x0b,0x00,0x00     ], 'MODE64');
TEST('add rbx, rax                     ', [0x48,0x03,0xd8                    ], 'MODE64');
TEST('add rcx, rax                     ', [0x48,0x03,0xc8                    ], 'MODE64');
TEST('add rax, rdi                     ', [0x48,0x03,0xc7                    ], 'MODE64');
TEST('add rdi, rax                     ', [0x48,0x03,0xf8                    ], 'MODE64');
TEST('add rax, 24                      ', [0x48,0x83,0xc0,0x18               ], 'MODE64');
TEST('add rax, 40                      ', [0x48,0x83,0xc0,0x28               ], 'MODE64');
TEST('add rax, rsi                     ', [0x48,0x03,0xc6                    ], 'MODE64');
TEST('add rbp, r12                     ', [0x49,0x03,0xec                    ], 'MODE64');
TEST('add rax, qword [rbp+8]           ', [0x48,0x03,0x45,0x08               ], 'MODE64');
TEST('add rax, rbx                     ', [0x48,0x03,0xc3                    ], 'MODE64');
TEST('add r12, rax                     ', [0x4c,0x03,0xe0                    ], 'MODE64');
TEST('add rax, 4                       ', [0x48,0x83,0xc0,0x04               ], 'MODE64');
TEST('add r12, 20                      ', [0x49,0x83,0xc4,0x14               ], 'MODE64');
TEST('add rax, qword [rsi]             ', [0x48,0x03,0x06                    ], 'MODE64');
TEST('add r10, rax                     ', [0x4c,0x03,0xd0                    ], 'MODE64');
TEST('add rsi, rax                     ', [0x48,0x03,0xf0                    ], 'MODE64');
TEST('add rax, qword [rsi+8]           ', [0x48,0x03,0x46,0x08               ], 'MODE64');
TEST('add byte [rax], al               ', [0x00,0x00                         ], 'MODE64');

TEST('and edi, eax               ', [0x23,0xf8                         ], 'MODE32');
TEST('and edi, 0x7ff             ', [0x81,0xe7,0xff,0x07,0x00,0x00     ], 'MODE32');
TEST('and eax, ecx               ', [0x23,0xc1                         ], 'MODE32');
TEST('and ecx, 0x1ffe0           ', [0x81,0xe1,0xe0,0xff,0x01,0x00     ], 'MODE32');
TEST('and dword [esi+4], 0       ', [0x83,0x66,0x04,0x00               ], 'MODE32');
TEST('and ecx, 31                ', [0x83,0xe1,0x1f                    ], 'MODE32');
TEST('and edi, 0x80              ', [0x81,0xe7,0x80,0x00,0x00,0x00     ], 'MODE32');
TEST('and edx, ecx               ', [0x23,0xd1                         ], 'MODE32');
TEST('and ecx, 127               ', [0x83,0xe1,0x7f                    ], 'MODE32');
TEST('and ecx, 15                ', [0x83,0xe1,0x0f                    ], 'MODE32');
TEST('and ecx, 3                 ', [0x83,0xe1,0x03                    ], 'MODE32');
TEST('and edi, 31                ', [0x83,0xe7,0x1f                    ], 'MODE32');
TEST('and dword [ebp-0x1ac8], ecx', [0x21,0x8d,0x38,0xe5,0xff,0xff     ], 'MODE32');
TEST('and dword [ebp-0x1ac4], edi', [0x21,0xbd,0x3c,0xe5,0xff,0xff     ], 'MODE32');
TEST('and dword [ecx+eax+56], edi', [0x21,0x7c,0x01,0x38               ], 'MODE32');
TEST('and dword [ebp-36], edi    ', [0x21,0x7d,0xdc                    ], 'MODE32');
TEST('and dword [ebp-4], edi     ', [0x21,0x7d,0xfc                    ], 'MODE32');
TEST('and dword [edi], 0         ', [0x83,0x27,0x00                    ], 'MODE32');
TEST('and dword [esi+0x3b8], 0   ', [0x83,0xa6,0xb8,0x03,0x00,0x00,0x00], 'MODE32');
TEST('and eax, edi               ', [0x23,0xc7                         ], 'MODE32');
TEST('and ecx, edi               ', [0x23,0xcf                         ], 'MODE32');
TEST('and dword [edi], eax       ', [0x21,0x07                         ], 'MODE32');
TEST('and dword [edi+4], 0       ', [0x83,0x67,0x04,0x00               ], 'MODE32');
TEST('and ecx, 0x3ff             ', [0x81,0xe1,0xff,0x03,0x00,0x00     ], 'MODE32');
TEST('and dword [ebp-8], 0       ', [0x83,0x65,0xf8,0x00               ], 'MODE32');
TEST('and ecx, 0x404             ', [0x81,0xe1,0x04,0x04,0x00,0x00     ], 'MODE32');
TEST('and ecx, 0x7ff00000        ', [0x81,0xe1,0x00,0x00,0xf0,0x7f     ], 'MODE32');
TEST('and ecx, 0x7ff             ', [0x81,0xe1,0xff,0x07,0x00,0x00     ], 'MODE32');
TEST('and dword [ecx+4], 0       ', [0x83,0x61,0x04,0x00               ], 'MODE32');
TEST('and ecx, eax               ', [0x23,0xc8                         ], 'MODE32');
TEST('and ecx, 7                 ', [0x83,0xe1,0x07                    ], 'MODE32');
TEST('and ecx, 4                 ', [0x83,0xe1,0x04                    ], 'MODE32');
TEST('and ecx, ebx               ', [0x23,0xcb                         ], 'MODE32');
TEST('and edi, edx               ', [0x23,0xfa                         ], 'MODE32');
TEST('and edi, 0x8000            ', [0x81,0xe7,0x00,0x80,0x00,0x00     ], 'MODE32');
TEST('and ecx, 2                 ', [0x83,0xe1,0x02                    ], 'MODE32');
TEST('and edi, 0x1ffff           ', [0x81,0xe7,0xff,0xff,0x01,0x00     ], 'MODE32');
TEST('and edi, 0x7fff            ', [0x81,0xe7,0xff,0x7f,0x00,0x00     ], 'MODE32');
TEST('and edi, 0xff              ', [0x81,0xe7,0xff,0x00,0x00,0x00     ], 'MODE32');
TEST('and ecx, edx               ', [0x23,0xca                         ], 'MODE32');
TEST('and esi, ecx               ', [0x23,0xf1                         ], 'MODE32');
TEST('and edi, 0x308031f         ', [0x81,0xe7,0x1f,0x03,0x08,0x03     ], 'MODE32');
TEST('and edi, dword [ebp+8]     ', [0x23,0x7d,0x08                    ], 'MODE32');
TEST('and edx, edi               ', [0x23,0xd7                         ], 'MODE32');
TEST('and rax, r9                ', [0x49,0x23,0xc1                    ], 'MODE64');
TEST('and rax, 15                ', [0x48,0x83,0xe0,0x0f               ], 'MODE64');
TEST('and dword [rax], 0         ', [0x83,0x20,0x00                    ], 'MODE64');
TEST('and rcx, rax               ', [0x48,0x23,0xc8                    ], 'MODE64');
TEST('and rax, rcx               ', [0x48,0x23,0xc1                    ], 'MODE64');
TEST('and rax, r11               ', [0x49,0x23,0xc3                    ], 'MODE64');
TEST('and rax, r8                ', [0x49,0x23,0xc0                    ], 'MODE64');

TEST('call ecx          ', [0xff,0xd1     ], 'MODE32');
TEST('call edi          ', [0xff,0xd7     ], 'MODE32');
TEST('call dword [ebp-8]', [0xff,0x55,0xf8], 'MODE32');
TEST('call rax          ', [0xff,0xd0     ], 'MODE64');

TEST('cmp word [rax], r10w             ', [0x66,0x44,0x39,0x10               ], 'MODE64');
TEST('cmp eax, ecx                     ', [0x3b,0xc1                         ], 'MODE32');
TEST('cmp dword [ebp+8], 0             ', [0x83,0x7d,0x08,0x00               ], 'MODE32');
TEST('cmp eax, 122                     ', [0x83,0xf8,0x7a                    ], 'MODE32');
TEST('cmp al, byte [ecx]               ', [0x3a,0x01                         ], 'MODE32');
TEST('cmp dword [ecx], eax             ', [0x39,0x01                         ], 'MODE32');
TEST('cmp al, 88                       ', [0x3c,0x58                         ], 'MODE32');
TEST('cmp dl, 42                       ', [0x80,0xfa,0x2a                    ], 'MODE32');
TEST('cmp dl, 73                       ', [0x80,0xfa,0x49                    ], 'MODE32');
TEST('cmp dl, 104                      ', [0x80,0xfa,0x68                    ], 'MODE32');
TEST('cmp dl, 108                      ', [0x80,0xfa,0x6c                    ], 'MODE32');
TEST('cmp dl, 119                      ', [0x80,0xfa,0x77                    ], 'MODE32');
TEST('cmp byte [eax], 108              ', [0x80,0x38,0x6c                    ], 'MODE32');
TEST('cmp al, 54                       ', [0x3c,0x36                         ], 'MODE32');
TEST('cmp byte [edi+1], 52             ', [0x80,0x7f,0x01,0x34               ], 'MODE32');
TEST('cmp al, 51                       ', [0x3c,0x33                         ], 'MODE32');
TEST('cmp byte [edi+1], 50             ', [0x80,0x7f,0x01,0x32               ], 'MODE32');
TEST('cmp al, 100                      ', [0x3c,0x64                         ], 'MODE32');
TEST('cmp al, 105                      ', [0x3c,0x69                         ], 'MODE32');
TEST('cmp al, 111                      ', [0x3c,0x6f                         ], 'MODE32');
TEST('cmp al, 117                      ', [0x3c,0x75                         ], 'MODE32');
TEST('cmp al, 120                      ', [0x3c,0x78                         ], 'MODE32');
TEST('cmp eax, 100                     ', [0x83,0xf8,0x64                    ], 'MODE32');
TEST('cmp eax, 83                      ', [0x83,0xf8,0x53                    ], 'MODE32');
TEST('cmp eax, 112                     ', [0x83,0xf8,0x70                    ], 'MODE32');
TEST('cmp eax, 101                     ', [0x83,0xf8,0x65                    ], 'MODE32');
TEST('cmp eax, 103                     ', [0x83,0xf8,0x67                    ], 'MODE32');
TEST('cmp eax, 105                     ', [0x83,0xf8,0x69                    ], 'MODE32');
TEST('cmp eax, 110                     ', [0x83,0xf8,0x6e                    ], 'MODE32');
TEST('cmp eax, 111                     ', [0x83,0xf8,0x6f                    ], 'MODE32');
TEST('cmp dl, 103                      ', [0x80,0xfa,0x67                    ], 'MODE32');
TEST('cmp byte [ebp-0x211], 103        ', [0x80,0xbd,0xef,0xfd,0xff,0xff,0x67], 'MODE32');
TEST('cmp byte [esi], 45               ', [0x80,0x3e,0x2d                    ], 'MODE32');
TEST('cmp edi, esi                     ', [0x3b,0xfe                         ], 'MODE32');
TEST('cmp ecx, esi                     ', [0x3b,0xce                         ], 'MODE32');
TEST('cmp ecx, 57                      ', [0x83,0xf9,0x39                    ], 'MODE32');
TEST('cmp byte [esi], 48               ', [0x80,0x3e,0x30                    ], 'MODE32');
TEST('cmp dword [esi], 42              ', [0x83,0x3e,0x2a                    ], 'MODE32');
TEST('cmp ecx, dword [eax*8+0x693b5160]', [0x3b,0x0c,0xc5,0x60,0x51,0x3b,0x69], 'MODE32');
TEST('cmp eax, 45                      ', [0x83,0xf8,0x2d                    ], 'MODE32');
TEST('cmp ecx, eax                     ', [0x3b,0xc8                         ], 'MODE32');
TEST('cmp ebx, edi                     ', [0x3b,0xdf                         ], 'MODE32');
TEST('cmp edi, ebx                     ', [0x3b,0xfb                         ], 'MODE32');
TEST('cmp dword [edi], eax             ', [0x39,0x07                         ], 'MODE32');
TEST('cmp dword [ebp-28], ecx          ', [0x39,0x4d,0xe4                    ], 'MODE32');
TEST('cmp ecx, dword [eax*8+0x693a1720]', [0x3b,0x0c,0xc5,0x20,0x17,0x3a,0x69], 'MODE32');
TEST('cmp eax, 60                      ', [0x83,0xf8,0x3c                    ], 'MODE32');
TEST('cmp ecx, 0x1f4                   ', [0x81,0xf9,0xf4,0x01,0x00,0x00     ], 'MODE32');
TEST('cmp esi, 11                      ', [0x83,0xfe,0x0b                    ], 'MODE32');
TEST('cmp edx, ecx                     ', [0x3b,0xd1                         ], 'MODE32');
TEST('cmp esi, ecx                     ', [0x3b,0xf1                         ], 'MODE32');
TEST('cmp ecx, 20                      ', [0x83,0xf9,0x14                    ], 'MODE32');
TEST('cmp edi, eax                     ', [0x3b,0xf8                         ], 'MODE32');
TEST('cmp ecx, 0x80                    ', [0x81,0xf9,0x80,0x00,0x00,0x00     ], 'MODE32');
TEST('cmp ecx, 48                      ', [0x83,0xf9,0x30                    ], 'MODE32');
TEST('cmp ecx, 16                      ', [0x83,0xf9,0x10                    ], 'MODE32');
TEST('cmp ecx, 8                       ', [0x83,0xf9,0x08                    ], 'MODE32');
TEST('cmp ecx, 4                       ', [0x83,0xf9,0x04                    ], 'MODE32');
TEST('cmp dword [eax+0xa8], ecx        ', [0x39,0x88,0xa8,0x00,0x00,0x00     ], 'MODE32');
TEST('cmp dword [ebp+16], ecx          ', [0x39,0x4d,0x10                    ], 'MODE32');
TEST('cmp dl, 10                       ', [0x80,0xfa,0x0a                    ], 'MODE32');
TEST('cmp dword [ecx+eax+56], edi      ', [0x39,0x7c,0x01,0x38               ], 'MODE32');
TEST('cmp dword [ebp-0x1ae8], edi      ', [0x39,0xbd,0x18,0xe5,0xff,0xff     ], 'MODE32');
TEST('cmp dword [ebp-0x1ac4], edi      ', [0x39,0xbd,0x3c,0xe5,0xff,0xff     ], 'MODE32');
TEST('cmp cl, 10                       ', [0x80,0xf9,0x0a                    ], 'MODE32');
TEST('cmp ecx, 0x13ff                  ', [0x81,0xf9,0xff,0x13,0x00,0x00     ], 'MODE32');
TEST('cmp dword [ebp-0x1ae0], edi      ', [0x39,0xbd,0x20,0xe5,0xff,0xff     ], 'MODE32');
TEST('cmp ecx, ebx                     ', [0x3b,0xcb                         ], 'MODE32');
TEST('cmp eax, edi                     ', [0x3b,0xc7                         ], 'MODE32');
TEST('cmp dword [edi], ebx             ', [0x39,0x1f                         ], 'MODE32');
TEST('cmp eax, dword [0x693b5e18]      ', [0x3b,0x05,0x18,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, dword [0x693b5e1c]      ', [0x3b,0x05,0x1c,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, dword [0x693b5e20]      ', [0x3b,0x05,0x20,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, dword [0x693b5e24]      ', [0x3b,0x05,0x24,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, dword [0x693b5e28]      ', [0x3b,0x05,0x28,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, dword [0x693b5e2c]      ', [0x3b,0x05,0x2c,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp dword [ebx+0xac], ecx        ', [0x39,0x8b,0xac,0x00,0x00,0x00     ], 'MODE32');
TEST('cmp dword [ebx+0xb0], ecx        ', [0x39,0x8b,0xb0,0x00,0x00,0x00     ], 'MODE32');
TEST('cmp al, 48                       ', [0x3c,0x30                         ], 'MODE32');
TEST('cmp al, 57                       ', [0x3c,0x39                         ], 'MODE32');
TEST('cmp al, 59                       ', [0x3c,0x3b                         ], 'MODE32');
TEST('cmp eax, dword [0x693b5e10]      ', [0x3b,0x05,0x10,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, dword [0x693b5e14]      ', [0x3b,0x05,0x14,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp dword [ebx+0xb0], edi        ', [0x39,0xbb,0xb0,0x00,0x00,0x00     ], 'MODE32');
TEST('cmp esi, edi                     ', [0x3b,0xf7                         ], 'MODE32');
TEST('cmp ecx, edi                     ', [0x3b,0xcf                         ], 'MODE32');
TEST('cmp eax, dword [esi+4]           ', [0x3b,0x46,0x04                    ], 'MODE32');
TEST('cmp ecx, 5                       ', [0x83,0xf9,0x05                    ], 'MODE32');
TEST('cmp ecx, 0x101                   ', [0x81,0xf9,0x01,0x01,0x00,0x00     ], 'MODE32');
TEST('cmp ecx, edx                     ', [0x3b,0xca                         ], 'MODE32');
TEST('cmp dword [0x693b6d10], edi      ', [0x39,0x3d,0x10,0x6d,0x3b,0x69     ], 'MODE32');
TEST('cmp byte [ecx], 0                ', [0x80,0x39,0x00                    ], 'MODE32');
TEST('cmp edi, 4                       ', [0x83,0xff,0x04                    ], 'MODE32');
TEST('cmp ebx, 32                      ', [0x83,0xfb,0x20                    ], 'MODE32');
TEST('cmp ebx, ecx                     ', [0x3b,0xd9                         ], 'MODE32');
TEST('cmp word [ecx], dx               ', [0x66,0x39,0x11                    ], 'MODE32');
TEST('cmp si, word [ecx]               ', [0x66,0x3b,0x31                    ], 'MODE32');
TEST('cmp dword [ebp+12], ecx          ', [0x39,0x4d,0x0c                    ], 'MODE32');
TEST('cmp dword [edi+4], 1             ', [0x83,0x7f,0x04,0x01               ], 'MODE32');
TEST('cmp dword [esi+4], 1             ', [0x83,0x7e,0x04,0x01               ], 'MODE32');
TEST('cmp edi, dword [0x693b56cc]      ', [0x3b,0x3d,0xcc,0x56,0x3b,0x69     ], 'MODE32');
TEST('cmp dword [edi], 0               ', [0x83,0x3f,0x00                    ], 'MODE32');
TEST('cmp ax, 65                       ', [0x66,0x83,0xf8,0x41               ], 'MODE32');
TEST('cmp ax, 90                       ', [0x66,0x83,0xf8,0x5a               ], 'MODE32');
TEST('cmp dword [ebx+16], edi          ', [0x39,0x7b,0x10                    ], 'MODE32');
TEST('cmp dword [ebx+12], edi          ', [0x39,0x7b,0x0c                    ], 'MODE32');
TEST('cmp dword [esi+8], edi           ', [0x39,0x7e,0x08                    ], 'MODE32');
TEST('cmp dword [edi+4], 0             ', [0x83,0x7f,0x04,0x00               ], 'MODE32');
TEST('cmp edi, ecx                     ', [0x3b,0xf9                         ], 'MODE32');
TEST('cmp dword [ecx], edi             ', [0x39,0x39                         ], 'MODE32');
TEST('cmp dword [ecx+4], 8             ', [0x83,0x79,0x04,0x08               ], 'MODE32');
TEST('cmp edi, 0x90                    ', [0x81,0xff,0x90,0x00,0x00,0x00     ], 'MODE32');
TEST('cmp dword [ebp+8], eax           ', [0x39,0x45,0x08                    ], 'MODE32');
TEST('cmp dword [0x693b7130], ecx      ', [0x39,0x0d,0x30,0x71,0x3b,0x69     ], 'MODE32');
TEST('cmp edi, 3                       ', [0x83,0xff,0x03                    ], 'MODE32');
TEST('cmp byte [esi], 34               ', [0x80,0x3e,0x22                    ], 'MODE32');
TEST('cmp al, 32                       ', [0x3c,0x20                         ], 'MODE32');
TEST('cmp al, 9                        ', [0x3c,0x09                         ], 'MODE32');
TEST('cmp byte [esi], 92               ', [0x80,0x3e,0x5c                    ], 'MODE32');
TEST('cmp byte [eax], 34               ', [0x80,0x38,0x22                    ], 'MODE32');
TEST('cmp dword [ebp+24], ecx          ', [0x39,0x4d,0x18                    ], 'MODE32');
TEST('cmp al, 61                       ', [0x3c,0x3d                         ], 'MODE32');
TEST('cmp byte [esi], 61               ', [0x80,0x3e,0x3d                    ], 'MODE32');
TEST('cmp word [edi], ax               ', [0x66,0x39,0x07                    ], 'MODE32');
TEST('cmp eax, 69                      ', [0x83,0xf8,0x45                    ], 'MODE32');
TEST('cmp eax, 102                     ', [0x83,0xf8,0x66                    ], 'MODE32');
TEST('cmp eax, 97                      ', [0x83,0xf8,0x61                    ], 'MODE32');
TEST('cmp eax, 65                      ', [0x83,0xf8,0x41                    ], 'MODE32');
TEST('cmp byte [ebx], 45               ', [0x80,0x3b,0x2d                    ], 'MODE32');
TEST('cmp eax, 57                      ', [0x83,0xf8,0x39                    ], 'MODE32');
TEST('cmp cl, 102                      ', [0x80,0xf9,0x66                    ], 'MODE32');
TEST('cmp cl, 70                       ', [0x80,0xf9,0x46                    ], 'MODE32');
TEST('cmp cl, 57                       ', [0x80,0xf9,0x39                    ], 'MODE32');
TEST('cmp ecx, 100                     ', [0x83,0xf9,0x64                    ], 'MODE32');
TEST('cmp ecx, 10                      ', [0x83,0xf9,0x0a                    ], 'MODE32');
TEST('cmp dword [ecx], 45              ', [0x83,0x39,0x2d                    ], 'MODE32');
TEST('cmp dword [eax], 45              ', [0x83,0x38,0x2d                    ], 'MODE32');
TEST('cmp dword [ebp+20], edi          ', [0x39,0x7d,0x14                    ], 'MODE32');
TEST('cmp byte [eax], 48               ', [0x80,0x38,0x30                    ], 'MODE32');
TEST('cmp byte [ecx], 48               ', [0x80,0x39,0x30                    ], 'MODE32');
TEST('cmp dword [ebp-44], 45           ', [0x83,0x7d,0xd4,0x2d               ], 'MODE32');
TEST('cmp dword [edx], 45              ', [0x83,0x3a,0x2d                    ], 'MODE32');
TEST('cmp dword [ebp-48], 45           ', [0x83,0x7d,0xd0,0x2d               ], 'MODE32');
TEST('cmp al, 101                      ', [0x3c,0x65                         ], 'MODE32');
TEST('cmp al, 69                       ', [0x3c,0x45                         ], 'MODE32');
TEST('cmp byte [edx], 48               ', [0x80,0x3a,0x30                    ], 'MODE32');
TEST('cmp eax, 120                     ', [0x83,0xf8,0x78                    ], 'MODE32');
TEST('cmp esi, 40                      ', [0x83,0xfe,0x28                    ], 'MODE32');
TEST('cmp dword [ebp+24], edi          ', [0x39,0x7d,0x18                    ], 'MODE32');
TEST('cmp ecx, dword [0x693b7130]      ', [0x3b,0x0d,0x30,0x71,0x3b,0x69     ], 'MODE32');
TEST('cmp edi, dword [0x693b7130]      ', [0x3b,0x3d,0x30,0x71,0x3b,0x69     ], 'MODE32');
TEST('cmp dword [0x693b70bc], ecx      ', [0x39,0x0d,0xbc,0x70,0x3b,0x69     ], 'MODE32');
TEST('cmp edi, 0x7fffffff              ', [0x81,0xff,0xff,0xff,0xff,0x7f     ], 'MODE32');
TEST('cmp dword [ecx], 0x4550          ', [0x81,0x39,0x50,0x45,0x00,0x00     ], 'MODE32');
TEST('cmp eax, 87                      ', [0x83,0xf8,0x57                    ], 'MODE32');
TEST('cmp dword [0x693b70e0], edi      ', [0x39,0x3d,0xe0,0x70,0x3b,0x69     ], 'MODE32');
TEST('cmp dword [ebp+20], 10           ', [0x83,0x7d,0x14,0x0a               ], 'MODE32');
TEST('cmp eax, 9                       ', [0x83,0xf8,0x09                    ], 'MODE32');
TEST('cmp ecx, dword [ebp+16]          ', [0x3b,0x4d,0x10                    ], 'MODE32');
TEST('cmp ecx, 22                      ', [0x83,0xf9,0x16                    ], 'MODE32');
TEST('cmp ecx, 29                      ', [0x83,0xf9,0x1d                    ], 'MODE32');
TEST('cmp byte [edi], al               ', [0x38,0x07                         ], 'MODE32');
TEST('cmp byte [edi], 53               ', [0x80,0x3f,0x35                    ], 'MODE32');
TEST('cmp byte [eax], 57               ', [0x80,0x38,0x39                    ], 'MODE32');
TEST('cmp byte [esi], 49               ', [0x80,0x3e,0x31                    ], 'MODE32');
TEST('cmp ecx, 1                       ', [0x83,0xf9,0x01                    ], 'MODE32');
TEST('cmp ecx, 2                       ', [0x83,0xf9,0x02                    ], 'MODE32');
TEST('cmp edx, dword [esp+20]          ', [0x3b,0x54,0x24,0x14               ], 'MODE32');
TEST('cmp cl, 64                       ', [0x80,0xf9,0x40                    ], 'MODE32');
TEST('cmp cl, 32                       ', [0x80,0xf9,0x20                    ], 'MODE32');
TEST('cmp eax, 36                      ', [0x83,0xf8,0x24                    ], 'MODE32');
TEST('cmp di, 45                       ', [0x66,0x83,0xff,0x2d               ], 'MODE32');
TEST('cmp di, 43                       ', [0x66,0x83,0xff,0x2b               ], 'MODE32');
TEST('cmp di, 90                       ', [0x66,0x83,0xff,0x5a               ], 'MODE32');
TEST('cmp ecx, dword [0x693b5ec4]      ', [0x3b,0x0d,0xc4,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp eax, 64                      ', [0x83,0xf8,0x40                    ], 'MODE32');
TEST('cmp eax, 32                      ', [0x83,0xf8,0x20                    ], 'MODE32');
TEST('cmp ecx, dword [0x693b5edc]      ', [0x3b,0x0d,0xdc,0x5e,0x3b,0x69     ], 'MODE32');
TEST('cmp cl, 9                        ', [0x80,0xf9,0x09                    ], 'MODE32');
TEST('cmp cl, 13                       ', [0x80,0xf9,0x0d                    ], 'MODE32');
TEST('cmp eax, 11                      ', [0x83,0xf8,0x0b                    ], 'MODE32');
TEST('cmp cl, 43                       ', [0x80,0xf9,0x2b                    ], 'MODE32');
TEST('cmp cl, 45                       ', [0x80,0xf9,0x2d                    ], 'MODE32');
TEST('cmp cl, 48                       ', [0x80,0xf9,0x30                    ], 'MODE32');
TEST('cmp cl, 67                       ', [0x80,0xf9,0x43                    ], 'MODE32');
TEST('cmp cl, 69                       ', [0x80,0xf9,0x45                    ], 'MODE32');
TEST('cmp eax, 10                      ', [0x83,0xf8,0x0a                    ], 'MODE32');
TEST('cmp byte [edi], bl               ', [0x38,0x1f                         ], 'MODE32');
TEST('cmp word [ecx], ax               ', [0x66,0x39,0x01                    ], 'MODE32');
TEST('cmp dword [ecx+4], ebx           ', [0x39,0x59,0x04                    ], 'MODE32');
TEST('cmp dword [ecx], ebx             ', [0x39,0x19                         ], 'MODE32');
TEST('cmp ecx, dword [edx-4]           ', [0x3b,0x4a,0xfc                    ], 'MODE32');
TEST('cmp ecx, dword [ebp-92]          ', [0x3b,0x4d,0xa4                    ], 'MODE32');
TEST('cmp edi, 0x18000                 ', [0x81,0xff,0x00,0x80,0x01,0x00     ], 'MODE32');
TEST('cmp dword [ebp+8], edi           ', [0x39,0x7d,0x08                    ], 'MODE32');
TEST('cmp edi, edx                     ', [0x3b,0xfa                         ], 'MODE32');
TEST('cmp al, 53                       ', [0x3c,0x35                         ], 'MODE32');
TEST('cmp byte [ecx], 57               ', [0x80,0x39,0x39                    ], 'MODE32');
TEST('cmp edx, edi                     ', [0x3b,0xd7                         ], 'MODE32');
TEST('cmp ecx, 0x1000000               ', [0x81,0xf9,0x00,0x00,0x00,0x01     ], 'MODE32');
TEST('cmp ecx, 0x2000000               ', [0x81,0xf9,0x00,0x00,0x00,0x02     ], 'MODE32');
TEST('cmp ecx, 0x400                   ', [0x81,0xf9,0x00,0x04,0x00,0x00     ], 'MODE32');
TEST('cmp ecx, 0x800                   ', [0x81,0xf9,0x00,0x08,0x00,0x00     ], 'MODE32');
TEST('cmp edi, 1                       ', [0x83,0xff,0x01                    ], 'MODE32');
TEST('cmp edi, 2                       ', [0x83,0xff,0x02                    ], 'MODE32');
TEST('cmp ax, 58                       ', [0x66,0x83,0xf8,0x3a               ], 'MODE32');
TEST('cmp dword [ebp+8], 0x123         ', [0x81,0x7d,0x08,0x23,0x01,0x00,0x00], 'MODE32');
TEST('cmp dword [eax+ecx+4], edx       ', [0x39,0x54,0x08,0x04               ], 'MODE32');
TEST('cmp edi, dword [eax+12]          ', [0x3b,0x78,0x0c                    ], 'MODE32');
TEST('cmp dword [ecx+4], 0             ', [0x83,0x79,0x04,0x00               ], 'MODE32');
TEST('cmp dword [eax], ecx             ', [0x39,0x08                         ], 'MODE32');
TEST('cmp ecx, 0x100                   ', [0x81,0xf9,0x00,0x01,0x00,0x00     ], 'MODE32');
TEST('cmp dword [edx+12], ecx          ', [0x39,0x4a,0x0c                    ], 'MODE32');
TEST('cmp ecx, dword [edx+12]          ', [0x3b,0x4a,0x0c                    ], 'MODE32');
TEST('cmp dword [esi+20], 0x19930520   ', [0x81,0x7e,0x14,0x20,0x05,0x93,0x19], 'MODE32');
TEST('cmp dword [esi+20], 0x19930521   ', [0x81,0x7e,0x14,0x21,0x05,0x93,0x19], 'MODE32');
TEST('cmp dword [esi+20], 0x19930522   ', [0x81,0x7e,0x14,0x22,0x05,0x93,0x19], 'MODE32');
TEST('cmp dword [edi+4], 0x80          ', [0x81,0x7f,0x04,0x80,0x00,0x00,0x00], 'MODE32');
TEST('cmp eax, dword [edi+4]           ', [0x3b,0x47,0x04                    ], 'MODE32');
TEST('cmp ebx, dword [edi]             ', [0x3b,0x1f                         ], 'MODE32');
TEST('cmp ecx, dword [ebp-40]          ', [0x3b,0x4d,0xd8                    ], 'MODE32');
TEST('cmp edi, dword [esi]             ', [0x3b,0x3e                         ], 'MODE32');
TEST('cmp dword [esi+20], 4            ', [0x83,0x7e,0x14,0x04               ], 'MODE32');
TEST('cmp dword [ecx+4], esi           ', [0x39,0x71,0x04                    ], 'MODE32');
TEST('cmp dword [edx+20], edi          ', [0x39,0x7a,0x14                    ], 'MODE32');
TEST('cmp eax, 122                     ', [0x83,0xf8,0x7a                    ], 'MODE64');
TEST('cmp rax, qword [rcx+rdx]         ', [0x48,0x3b,0x04,0x11               ], 'MODE64');
TEST('cmp qword [rcx], rax             ', [0x48,0x39,0x01                    ], 'MODE64');
TEST('cmp edx, 32                      ', [0x83,0xfa,0x20                    ], 'MODE64');
TEST('cmp rbx, rax                     ', [0x48,0x3b,0xd8                    ], 'MODE64');
TEST('cmp al, 88                       ', [0x3c,0x58                         ], 'MODE64');
TEST('cmp ecx, 100                     ', [0x83,0xf9,0x64                    ], 'MODE64');
TEST('cmp ecx, 65                      ', [0x83,0xf9,0x41                    ], 'MODE64');
TEST('cmp ecx, 67                      ', [0x83,0xf9,0x43                    ], 'MODE64');
TEST('cmp ecx, 83                      ', [0x83,0xf9,0x53                    ], 'MODE64');
TEST('cmp ecx, 88                      ', [0x83,0xf9,0x58                    ], 'MODE64');
TEST('cmp ecx, 90                      ', [0x83,0xf9,0x5a                    ], 'MODE64');
TEST('cmp ecx, 97                      ', [0x83,0xf9,0x61                    ], 'MODE64');
TEST('cmp ecx, 99                      ', [0x83,0xf9,0x63                    ], 'MODE64');
TEST('cmp ecx, 103                     ', [0x83,0xf9,0x67                    ], 'MODE64');
TEST('cmp ecx, 105                     ', [0x83,0xf9,0x69                    ], 'MODE64');
TEST('cmp ecx, 110                     ', [0x83,0xf9,0x6e                    ], 'MODE64');
TEST('cmp ecx, 111                     ', [0x83,0xf9,0x6f                    ], 'MODE64');
TEST('cmp ecx, 112                     ', [0x83,0xf9,0x70                    ], 'MODE64');
TEST('cmp ecx, 115                     ', [0x83,0xf9,0x73                    ], 'MODE64');
TEST('cmp ecx, 117                     ', [0x83,0xf9,0x75                    ], 'MODE64');
TEST('cmp ecx, 120                     ', [0x83,0xf9,0x78                    ], 'MODE64');
TEST('cmp eax, 57                      ', [0x83,0xf8,0x39                    ], 'MODE64');
TEST('cmp byte [rbx], 48               ', [0x80,0x3b,0x30                    ], 'MODE64');
TEST('cmp r15b, 103                    ', [0x41,0x80,0xff,0x67               ], 'MODE64');
TEST('cmp byte [rbx], 45               ', [0x80,0x3b,0x2d                    ], 'MODE64');
TEST('cmp r15b, 73                     ', [0x41,0x80,0xff,0x49               ], 'MODE64');
TEST('cmp r15b, 104                    ', [0x41,0x80,0xff,0x68               ], 'MODE64');
TEST('cmp r15b, 108                    ', [0x41,0x80,0xff,0x6c               ], 'MODE64');
TEST('cmp r15b, 119                    ', [0x41,0x80,0xff,0x77               ], 'MODE64');
TEST('cmp byte [rdi], 108              ', [0x80,0x3f,0x6c                    ], 'MODE64');
TEST('cmp al, 54                       ', [0x3c,0x36                         ], 'MODE64');
TEST('cmp byte [rdi+1], 52             ', [0x80,0x7f,0x01,0x34               ], 'MODE64');
TEST('cmp al, 51                       ', [0x3c,0x33                         ], 'MODE64');
TEST('cmp byte [rdi+1], 50             ', [0x80,0x7f,0x01,0x32               ], 'MODE64');
TEST('cmp al, 32                       ', [0x3c,0x20                         ], 'MODE64');
TEST('cmp r15b, 42                     ', [0x41,0x80,0xff,0x2a               ], 'MODE64');
TEST('cmp r15b, 32                     ', [0x41,0x80,0xff,0x20               ], 'MODE64');
TEST('cmp r15b, 35                     ', [0x41,0x80,0xff,0x23               ], 'MODE64');
TEST('cmp r15b, 43                     ', [0x41,0x80,0xff,0x2b               ], 'MODE64');
TEST('cmp r15b, 45                     ', [0x41,0x80,0xff,0x2d               ], 'MODE64');
TEST('cmp r15b, 48                     ', [0x41,0x80,0xff,0x30               ], 'MODE64');
TEST('cmp dword [rbx], 42              ', [0x83,0x3b,0x2a                    ], 'MODE64');
TEST('cmp rax, 45                      ', [0x48,0x83,0xf8,0x2d               ], 'MODE64');
TEST('cmp r8, 64                       ', [0x49,0x83,0xf8,0x40               ], 'MODE64');
TEST('cmp qword [rdi], rax             ', [0x48,0x39,0x07                    ], 'MODE64');
TEST('cmp r12, rbx                     ', [0x4c,0x3b,0xe3                    ], 'MODE64');
TEST('cmp r15, rax                     ', [0x4c,0x3b,0xf8                    ], 'MODE64');
TEST('cmp rax, 23                      ', [0x48,0x83,0xf8,0x17               ], 'MODE64');
TEST('cmp rax, 60                      ', [0x48,0x83,0xf8,0x3c               ], 'MODE64');
TEST('cmp rax, 0x1f4                   ', [0x48,0x3d,0xf4,0x01,0x00,0x00     ], 'MODE64');
TEST('cmp rsi, rax                     ', [0x48,0x3b,0xf0                    ], 'MODE64');
TEST('cmp rcx, rax                     ', [0x48,0x3b,0xc8                    ], 'MODE64');
TEST('cmp ebx, 11                      ', [0x83,0xfb,0x0b                    ], 'MODE64');
TEST('cmp qword [rcx+0x138], rax       ', [0x48,0x39,0x81,0x38,0x01,0x00,0x00], 'MODE64');
TEST('cmp cl, 10                       ', [0x80,0xf9,0x0a                    ], 'MODE64');
TEST('cmp rax, 1                       ', [0x48,0x83,0xf8,0x01               ], 'MODE64');
TEST('cmp cx, 10                       ', [0x66,0x83,0xf9,0x0a               ], 'MODE64');
TEST('cmp al, 10                       ', [0x3c,0x0a                         ], 'MODE64');
TEST('cmp rax, rdi                     ', [0x48,0x3b,0xc7                    ], 'MODE64');
TEST('cmp ax, 10                       ', [0x66,0x83,0xf8,0x0a               ], 'MODE64');
TEST('cmp al, 9                        ', [0x3c,0x09                         ], 'MODE64');
TEST('cmp cl, 59                       ', [0x80,0xf9,0x3b                    ], 'MODE64');
TEST('cmp rax, rbp                     ', [0x48,0x3b,0xc5                    ], 'MODE64');
TEST('cmp rax, rcx                     ', [0x48,0x3b,0xc1                    ], 'MODE64');
TEST('cmp dword [rax], 0               ', [0x83,0x38,0x00                    ], 'MODE64');
TEST('cmp qword [rdi-16], rax          ', [0x48,0x39,0x47,0xf0               ], 'MODE64');
TEST('cmp dword [rax], edi             ', [0x39,0x38                         ], 'MODE64');
TEST('cmp rax, qword [rdx+rcx]         ', [0x48,0x3b,0x04,0x0a               ], 'MODE64');
TEST('cmp rax, qword [rdx+rcx+8]       ', [0x48,0x3b,0x44,0x0a,0x08          ], 'MODE64');
TEST('cmp rax, qword [rdx+rcx+16]      ', [0x48,0x3b,0x44,0x0a,0x10          ], 'MODE64');
TEST('cmp rax, qword [rdx+rcx+24]      ', [0x48,0x3b,0x44,0x0a,0x18          ], 'MODE64');
TEST('cmp dx, word [rax]               ', [0x66,0x3b,0x10                    ], 'MODE64');
TEST('cmp rax, rdx                     ', [0x48,0x3b,0xc2                    ], 'MODE64');
TEST('cmp rdi, rax                     ', [0x48,0x3b,0xf8                    ], 'MODE64');
TEST('cmp rax, 3                       ', [0x48,0x83,0xf8,0x03               ], 'MODE64');
TEST('cmp word [rax], r12w             ', [0x66,0x44,0x39,0x20               ], 'MODE64');
TEST('cmp rax, 10                      ', [0x48,0x83,0xf8,0x0a               ], 'MODE64');
TEST('cmp rax, 0xe4                    ', [0x48,0x3d,0xe4,0x00,0x00,0x00     ], 'MODE64');
TEST('cmp byte [rax], dil              ', [0x40,0x38,0x38                    ], 'MODE64');
TEST('cmp rax, 2                       ', [0x48,0x83,0xf8,0x02               ], 'MODE64');
TEST('cmp dword [rax], r15d            ', [0x44,0x39,0x38                    ], 'MODE64');
TEST('cmp byte [rbx], 34               ', [0x80,0x3b,0x22                    ], 'MODE64');
TEST('cmp sil, 32                      ', [0x40,0x80,0xfe,0x20               ], 'MODE64');
TEST('cmp sil, 9                       ', [0x40,0x80,0xfe,0x09               ], 'MODE64');
TEST('cmp byte [rbx], 32               ', [0x80,0x3b,0x20                    ], 'MODE64');
TEST('cmp byte [rbx], 9                ', [0x80,0x3b,0x09                    ], 'MODE64');
TEST('cmp byte [rbx], 92               ', [0x80,0x3b,0x5c                    ], 'MODE64');
TEST('cmp byte [rax], 34               ', [0x80,0x38,0x22                    ], 'MODE64');
TEST('cmp al, 61                       ', [0x3c,0x3d                         ], 'MODE64');
TEST('cmp byte [rbx], 61               ', [0x80,0x3b,0x3d                    ], 'MODE64');
TEST('cmp rax, rbx                     ', [0x48,0x3b,0xc3                    ], 'MODE64');
TEST('cmp word [rax], r14w             ', [0x66,0x44,0x39,0x30               ], 'MODE64');
TEST('cmp r9d, 102                     ', [0x41,0x83,0xf9,0x66               ], 'MODE64');
TEST('cmp byte [rdi+2], 45             ', [0x80,0x7f,0x02,0x2d               ], 'MODE64');
TEST('cmp ax, 57                       ', [0x66,0x83,0xf8,0x39               ], 'MODE64');
TEST('cmp al, 57                       ', [0x3c,0x39                         ], 'MODE64');
TEST('cmp rcx, 100                     ', [0x48,0x83,0xf9,0x64               ], 'MODE64');
TEST('cmp rcx, 10                      ', [0x48,0x83,0xf9,0x0a               ], 'MODE64');
TEST('cmp r14, rax                     ', [0x4c,0x3b,0xf0                    ], 'MODE64');
TEST('cmp byte [rax], 48               ', [0x80,0x38,0x30                    ], 'MODE64');
TEST('cmp r8d, 100                     ', [0x41,0x83,0xf8,0x64               ], 'MODE64');
TEST('cmp r8d, 10                      ', [0x41,0x83,0xf8,0x0a               ], 'MODE64');
TEST('cmp byte [rcx], 48               ', [0x80,0x39,0x30                    ], 'MODE64');
TEST('cmp dword [rsp+64], 45           ', [0x83,0x7c,0x24,0x40,0x2d          ], 'MODE64');
TEST('cmp dword [rsp+48], 45           ', [0x83,0x7c,0x24,0x30,0x2d          ], 'MODE64');
TEST('cmp eax, 101                     ', [0x83,0xf8,0x65                    ], 'MODE64');
TEST('cmp eax, 120                     ', [0x83,0xf8,0x78                    ], 'MODE64');
TEST('cmp word [rax], cx               ', [0x66,0x39,0x08                    ], 'MODE64');
TEST('cmp rax, r14                     ', [0x49,0x3b,0xc6                    ], 'MODE64');
TEST('cmp rax, r15                     ', [0x49,0x3b,0xc7                    ], 'MODE64');
TEST('cmp rdx, rax                     ', [0x48,0x3b,0xd0                    ], 'MODE64');
TEST('cmp eax, 87                      ', [0x83,0xf8,0x57                    ], 'MODE64');
TEST('cmp rbp, rax                     ', [0x48,0x3b,0xe8                    ], 'MODE64');
TEST('cmp r9d, 10                      ', [0x41,0x83,0xf9,0x0a               ], 'MODE64');
TEST('cmp edx, 9                       ', [0x83,0xfa,0x09                    ], 'MODE64');
TEST('cmp rax, 0xff0                   ', [0x48,0x3d,0xf0,0x0f,0x00,0x00     ], 'MODE64');
TEST('cmp byte [rcx], 53               ', [0x80,0x39,0x35                    ], 'MODE64');
TEST('cmp byte [rax], 57               ', [0x80,0x38,0x39                    ], 'MODE64');
TEST('cmp byte [rbx], 49               ', [0x80,0x3b,0x31                    ], 'MODE64');
TEST('cmp eax, 34                      ', [0x83,0xf8,0x22                    ], 'MODE64');
TEST('cmp si, 45                       ', [0x66,0x83,0xfe,0x2d               ], 'MODE64');
TEST('cmp si, 43                       ', [0x66,0x83,0xfe,0x2b               ], 'MODE64');
TEST('cmp eax, 64                      ', [0x83,0xf8,0x40                    ], 'MODE64');
TEST('cmp eax, 32                      ', [0x83,0xf8,0x20                    ], 'MODE64');
TEST('cmp byte [r8], 32                ', [0x41,0x80,0x38,0x20               ], 'MODE64');
TEST('cmp dl, 57                       ', [0x80,0xfa,0x39                    ], 'MODE64');
TEST('cmp dl, 67                       ', [0x80,0xfa,0x43                    ], 'MODE64');
TEST('cmp dl, 69                       ', [0x80,0xfa,0x45                    ], 'MODE64');
TEST('cmp dl, byte [rax]               ', [0x3a,0x10                         ], 'MODE64');
TEST('cmp dl, 48                       ', [0x80,0xfa,0x30                    ], 'MODE64');
TEST('cmp dl, 43                       ', [0x80,0xfa,0x2b                    ], 'MODE64');
TEST('cmp dl, 45                       ', [0x80,0xfa,0x2d                    ], 'MODE64');
TEST('cmp dl, 9                        ', [0x80,0xfa,0x09                    ], 'MODE64');
TEST('cmp ecx, 10                      ', [0x83,0xf9,0x0a                    ], 'MODE64');
TEST('cmp al, 53                       ', [0x3c,0x35                         ], 'MODE64');
TEST('cmp byte [r10], 57               ', [0x41,0x80,0x3a,0x39               ], 'MODE64');
TEST('cmp byte [r10], 48               ', [0x41,0x80,0x3a,0x30               ], 'MODE64');
TEST('cmp cx, 58                       ', [0x66,0x83,0xf9,0x3a               ], 'MODE64');
TEST('cmp rax, r10                     ', [0x49,0x3b,0xc2                    ], 'MODE64');
TEST('cmp qword [rdi+48], r12          ', [0x4c,0x39,0x67,0x30               ], 'MODE64');
TEST('cmp qword [rax+0xf0], r12        ', [0x4c,0x39,0xa0,0xf0,0x00,0x00,0x00], 'MODE64');
TEST('cmp qword [rax+0x108], r12       ', [0x4c,0x39,0xa0,0x08,0x01,0x00,0x00], 'MODE64');

TEST('dec edi', [0x4f          ], 'MODE32');
TEST('dec ecx', [0x49          ], 'MODE32');
TEST('dec rax', [0x48,0xff,0xc8], 'MODE64');

TEST('div ecx', [0xf7,0xf1], 'MODE32');
TEST('div edi', [0xf7,0xf7], 'MODE32');

TEST('imul ebx, ecx', [0x0f,0xaf,0xd9], 'MODE32');
TEST('imul ecx, eax', [0x0f,0xaf,0xc8], 'MODE32');
TEST('imul edi, eax', [0x0f,0xaf,0xf8], 'MODE32');

TEST('inc edi          ', [0x47               ], 'MODE32');
TEST('inc ecx          ', [0x41               ], 'MODE32');
TEST('inc dword [ebp+8]', [0xff,0x45,0x08     ], 'MODE32');
TEST('inc word [ecx]   ', [0x66,0xff,0x01     ], 'MODE32');
TEST('inc byte [ecx]   ', [0xfe,0x01          ], 'MODE32');
TEST('inc rax          ', [0x48,0xff,0xc0     ], 'MODE64');
TEST('inc r12          ', [0x49,0xff,0xc4     ], 'MODE64');
TEST('inc dword [r12]  ', [0x41,0xff,0x04,0x24], 'MODE64');
TEST('inc byte [rax]   ', [0xfe,0x00          ], 'MODE64');

TEST('jmp rax', [0x48,0xff,0xe0], 'MODE64');

TEST('lea ecx, [0x693b5010]      ', [0x8d,0x0d,0x10,0x50,0x3b,0x69          ], 'MODE32');
TEST('lea ecx, [ecx+0x3fe]       ', [0x8d,0x89,0xfe,0x03,0x00,0x00          ], 'MODE32');
TEST('lea eax, [ebp+8]           ', [0x8d,0x45,0x08                         ], 'MODE32');
TEST('lea edi, [ebp-28]          ', [0x8d,0x7d,0xe4                         ], 'MODE32');
TEST('lea ecx, [ebp-0x270]       ', [0x8d,0x8d,0x90,0xfd,0xff,0xff          ], 'MODE32');
TEST('lea edi, [eax+0x15d]       ', [0x8d,0xb8,0x5d,0x01,0x00,0x00          ], 'MODE32');
TEST('lea ecx, [ebp-0x220]       ', [0x8d,0x8d,0xe0,0xfd,0xff,0xff          ], 'MODE32');
TEST('lea ecx, [ebp-4]           ', [0x8d,0x4d,0xfc                         ], 'MODE32');
TEST('lea ecx, [eax*2+0x693b666c]', [0x8d,0x0c,0x45,0x6c,0x66,0x3b,0x69     ], 'MODE32');
TEST('lea eax, [edi+eax*4]       ', [0x8d,0x04,0x87                         ], 'MODE32');
TEST('lea esi, [esi+4]           ', [0x8d,0x76,0x04                         ], 'MODE32');
TEST('lea edi, [edi+4]           ', [0x8d,0x7f,0x04                         ], 'MODE32');
TEST('lea edi, [edi+8]           ', [0x8d,0x7f,0x08                         ], 'MODE32');
TEST('lea edi, [edi+48]          ', [0x8d,0x7f,0x30                         ], 'MODE32');
TEST('lea edi, [edi+16]          ', [0x8d,0x7f,0x10                         ], 'MODE32');
TEST('lea edi, [ecx+edi-4]       ', [0x8d,0x7c,0x39,0xfc                    ], 'MODE32');
TEST('lea edi, [edi+0x80]        ', [0x8d,0xbf,0x80,0x00,0x00,0x00          ], 'MODE32');
TEST('lea ecx, [ebp-0x1ac8]      ', [0x8d,0x8d,0x38,0xe5,0xff,0xff          ], 'MODE32');
TEST('lea edi, [ebp-0x140c]      ', [0x8d,0xbd,0xf4,0xeb,0xff,0xff          ], 'MODE32');
TEST('lea ecx, [ebp-0xd64]       ', [0x8d,0x8d,0x9c,0xf2,0xff,0xff          ], 'MODE32');
TEST('lea ecx, [ebp-0x1ab8]      ', [0x8d,0x8d,0x48,0xe5,0xff,0xff          ], 'MODE32');
TEST('lea edi, [esi+4]           ', [0x8d,0x7e,0x04                         ], 'MODE32');
TEST('lea ecx, [ebp-17]          ', [0x8d,0x4d,0xef                         ], 'MODE32');
TEST('lea edi, [edi+2]           ', [0x8d,0x7f,0x02                         ], 'MODE32');
TEST('lea eax, [edi+4]           ', [0x8d,0x47,0x04                         ], 'MODE32');
TEST('lea eax, [ebp-8]           ', [0x8d,0x45,0xf8                         ], 'MODE32');
TEST('lea ecx, [edi+8]           ', [0x8d,0x4f,0x08                         ], 'MODE32');
TEST('lea edi, [esi+28]          ', [0x8d,0x7e,0x1c                         ], 'MODE32');
TEST('lea ecx, [edx+28]          ', [0x8d,0x4a,0x1c                         ], 'MODE32');
TEST('lea ecx, [ebp-16]          ', [0x8d,0x4d,0xf0                         ], 'MODE32');
TEST('lea edi, [ebx+12]          ', [0x8d,0x7b,0x0c                         ], 'MODE32');
TEST('lea ecx, [ebx+0x119]       ', [0x8d,0x8b,0x19,0x01,0x00,0x00          ], 'MODE32');
TEST('lea ecx, [ebp-0x512]       ', [0x8d,0x8d,0xee,0xfa,0xff,0xff          ], 'MODE32');
TEST('lea edi, [esi+12]          ', [0x8d,0x7e,0x0c                         ], 'MODE32');
TEST('lea ecx, [esi+12]          ', [0x8d,0x4e,0x0c                         ], 'MODE32');
TEST('lea ecx, [ecx+2]           ', [0x8d,0x49,0x02                         ], 'MODE32');
TEST('lea ecx, [ecx*2-0x1]       ', [0x8d,0x0c,0x4d,0xff,0xff,0xff,0xff     ], 'MODE32');
TEST('lea ecx, [eax*2-0x1]       ', [0x8d,0x0c,0x45,0xff,0xff,0xff,0xff     ], 'MODE32');
TEST('lea edi, [ebx+1]           ', [0x8d,0x7b,0x01                         ], 'MODE32');
TEST('lea edi, [ebx+4]           ', [0x8d,0x7b,0x04                         ], 'MODE32');
TEST('lea ecx, [ebx+0x100]       ', [0x8d,0x8b,0x00,0x01,0x00,0x00          ], 'MODE32');
TEST('lea ecx, [ebx+ebx]         ', [0x8d,0x0c,0x1b                         ], 'MODE32');
TEST('lea ecx, [eax+1]           ', [0x8d,0x48,0x01                         ], 'MODE32');
TEST('lea eax, [ebx+edi]         ', [0x8d,0x04,0x3b                         ], 'MODE32');
TEST('lea edi, [esi+1]           ', [0x8d,0x7e,0x01                         ], 'MODE32');
TEST('lea ecx, [ebp-24]          ', [0x8d,0x4d,0xe8                         ], 'MODE32');
TEST('lea ecx, [edi+edi]         ', [0x8d,0x0c,0x3f                         ], 'MODE32');
TEST('lea edx, [ecx+ebx*4]       ', [0x8d,0x14,0x99                         ], 'MODE32');
TEST('lea eax, [edi+ebx*4]       ', [0x8d,0x04,0x9f                         ], 'MODE32');
TEST('lea ecx, [ebp-32]          ', [0x8d,0x4d,0xe0                         ], 'MODE32');
TEST('lea ecx, [ebp-44]          ', [0x8d,0x4d,0xd4                         ], 'MODE32');
TEST('lea ecx, [esi+2]           ', [0x8d,0x4e,0x02                         ], 'MODE32');
TEST('lea ecx, [ebp-28]          ', [0x8d,0x4d,0xe4                         ], 'MODE32');
TEST('lea ecx, [ebp-20]          ', [0x8d,0x4d,0xec                         ], 'MODE32');
TEST('lea ecx, [ebp-48]          ', [0x8d,0x4d,0xd0                         ], 'MODE32');
TEST('lea ecx, [ebp-8]           ', [0x8d,0x4d,0xf8                         ], 'MODE32');
TEST('lea ecx, [ebp+12]          ', [0x8d,0x4d,0x0c                         ], 'MODE32');
TEST('lea ecx, [ebp+20]          ', [0x8d,0x4d,0x14                         ], 'MODE32');
TEST('lea ecx, [edi+4]           ', [0x8d,0x4f,0x04                         ], 'MODE32');
TEST('lea ecx, [ebx+4]           ', [0x8d,0x4b,0x04                         ], 'MODE32');
TEST('lea ecx, [ebp-36]          ', [0x8d,0x4d,0xdc                         ], 'MODE32');
TEST('lea ecx, [ebp+8]           ', [0x8d,0x4d,0x08                         ], 'MODE32');
TEST('lea ecx, [esp+4]           ', [0x8d,0x4c,0x24,0x04                    ], 'MODE32');
TEST('lea ecx, [ecx+0x80]        ', [0x8d,0x89,0x80,0x00,0x00,0x00          ], 'MODE32');
TEST('lea ecx, [ecx+16]          ', [0x8d,0x49,0x10                         ], 'MODE32');
TEST('lea ecx, [ecx+4]           ', [0x8d,0x49,0x04                         ], 'MODE32');
TEST('lea edi, [ecx+2]           ', [0x8d,0x79,0x02                         ], 'MODE32');
TEST('lea ecx, [esp+8]           ', [0x8d,0x4c,0x24,0x08                    ], 'MODE32');
TEST('lea ecx, [edi+ecx-16]      ', [0x8d,0x4c,0x0f,0xf0                    ], 'MODE32');
TEST('lea ecx, [ebp-40]          ', [0x8d,0x4d,0xd8                         ], 'MODE32');
TEST('lea edi, [ebp-16]          ', [0x8d,0x7d,0xf0                         ], 'MODE32');
TEST('lea edi, [eax+1]           ', [0x8d,0x78,0x01                         ], 'MODE32');
TEST('lea edi, [edi+eax*4]       ', [0x8d,0x3c,0x87                         ], 'MODE32');
TEST('lea edx, [ebp-8]           ', [0x8d,0x55,0xf8                         ], 'MODE32');
TEST('lea edi, [edi+edx*4]       ', [0x8d,0x3c,0x97                         ], 'MODE32');
TEST('lea edi, [ebp-32]          ', [0x8d,0x7d,0xe0                         ], 'MODE32');
TEST('lea ecx, [ebp-60]          ', [0x8d,0x4d,0xc4                         ], 'MODE32');
TEST('lea edi, [ebp-72]          ', [0x8d,0x7d,0xb8                         ], 'MODE32');
TEST('lea ecx, [ebp-72]          ', [0x8d,0x4d,0xb8                         ], 'MODE32');
TEST('lea edi, [ebp-60]          ', [0x8d,0x7d,0xc4                         ], 'MODE32');
TEST('lea ecx, [eax+edi]         ', [0x8d,0x0c,0x38                         ], 'MODE32');
TEST('lea ecx, [ebp-12]          ', [0x8d,0x4d,0xf4                         ], 'MODE32');
TEST('lea edi, [edi+edx*2]       ', [0x8d,0x3c,0x57                         ], 'MODE32');
TEST('lea edi, [eax+edx]         ', [0x8d,0x3c,0x10                         ], 'MODE32');
TEST('lea ecx, [edx+10]          ', [0x8d,0x4a,0x0a                         ], 'MODE32');
TEST('lea ecx, [esi+edx]         ', [0x8d,0x0c,0x16                         ], 'MODE32');
TEST('lea ecx, [edx+eax]         ', [0x8d,0x0c,0x02                         ], 'MODE32');
TEST('lea ecx, [ebp-56]          ', [0x8d,0x4d,0xc8                         ], 'MODE32');
TEST('lea ecx, [esi-12]          ', [0x8d,0x4e,0xf4                         ], 'MODE32');
TEST('lea edi, [ecx+12]          ', [0x8d,0x79,0x0c                         ], 'MODE32');
TEST('lea ecx, [eax+8]           ', [0x8d,0x48,0x08                         ], 'MODE32');
TEST('lea ecx, [ebp-0x124]       ', [0x8d,0x8d,0xdc,0xfe,0xff,0xff          ], 'MODE32');
TEST('lea ecx, [ebp-0x18c]       ', [0x8d,0x8d,0x74,0xfe,0xff,0xff          ], 'MODE32');
TEST('lea ecx, [ebp-0x194]       ', [0x8d,0x8d,0x6c,0xfe,0xff,0xff          ], 'MODE32');
TEST('lea rax, [rip+0xa071]      ', [0x48,0x8d,0x05,0x71,0xa0,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xa0fc]      ', [0x48,0x8d,0x05,0xfc,0xa0,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xa12f]      ', [0x48,0x8d,0x05,0x2f,0xa1,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xa1a2]      ', [0x48,0x8d,0x05,0xa2,0xa1,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x9594]      ', [0x48,0x8d,0x05,0x94,0x95,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xa0be]      ', [0x48,0x8d,0x05,0xbe,0xa0,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xa010]      ', [0x48,0x8d,0x05,0x10,0xa0,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xa0ea]      ', [0x48,0x8d,0x05,0xea,0xa0,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rsp+48]          ', [0x48,0x8d,0x44,0x24,0x30               ], 'MODE64');
TEST('lea rax, [rbp-48]          ', [0x48,0x8d,0x45,0xd0                    ], 'MODE64');
TEST('lea rax, [rbp+0x4b8]       ', [0x48,0x8d,0x85,0xb8,0x04,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdx+1]           ', [0x48,0x8d,0x42,0x01                    ], 'MODE64');
TEST('lea rax, [rbp+0x1cf]       ', [0x48,0x8d,0x85,0xcf,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x28363]     ', [0x48,0x8d,0x05,0x63,0x83,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x2833b]     ', [0x48,0x8d,0x05,0x3b,0x83,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x282ef]     ', [0x48,0x8d,0x05,0xef,0x82,0x02,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0x101d3]     ', [0x48,0x8d,0x0d,0xd3,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101e6]     ', [0x48,0x8d,0x15,0xe6,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101e3]     ', [0x48,0x8d,0x15,0xe3,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101cd]     ', [0x48,0x8d,0x15,0xcd,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101bf]     ', [0x48,0x8d,0x15,0xbf,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101b1]     ', [0x48,0x8d,0x15,0xb1,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101b3]     ', [0x48,0x8d,0x15,0xb3,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x101a5]     ', [0x48,0x8d,0x15,0xa5,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1019f]     ', [0x48,0x8d,0x15,0x9f,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10199]     ', [0x48,0x8d,0x15,0x99,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10193]     ', [0x48,0x8d,0x15,0x93,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1018d]     ', [0x48,0x8d,0x15,0x8d,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1018f]     ', [0x48,0x8d,0x15,0x8f,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10189]     ', [0x48,0x8d,0x15,0x89,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10183]     ', [0x48,0x8d,0x15,0x83,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1017d]     ', [0x48,0x8d,0x15,0x7d,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10177]     ', [0x48,0x8d,0x15,0x77,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10172]     ', [0x48,0x8d,0x15,0x72,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1017b]     ', [0x48,0x8d,0x15,0x7b,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1017f]     ', [0x48,0x8d,0x15,0x7f,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10179]     ', [0x48,0x8d,0x15,0x79,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10175]     ', [0x48,0x8d,0x15,0x75,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10167]     ', [0x48,0x8d,0x15,0x67,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10159]     ', [0x48,0x8d,0x15,0x59,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1014b]     ', [0x48,0x8d,0x15,0x4b,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1013d]     ', [0x48,0x8d,0x15,0x3d,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1013f]     ', [0x48,0x8d,0x15,0x3f,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10139]     ', [0x48,0x8d,0x15,0x39,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x1012b]     ', [0x48,0x8d,0x15,0x2b,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10125]     ', [0x48,0x8d,0x15,0x25,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10117]     ', [0x48,0x8d,0x15,0x17,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10112]     ', [0x48,0x8d,0x15,0x12,0x01,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x10048]     ', [0x48,0x8d,0x15,0x48,0x00,0x01,0x00     ], 'MODE64');
TEST('lea r8, [rip+0x1050c]      ', [0x4c,0x8d,0x05,0x0c,0x05,0x01,0x00     ], 'MODE64');
TEST('lea r8, [rip+0x10503]      ', [0x4c,0x8d,0x05,0x03,0x05,0x01,0x00     ], 'MODE64');
TEST('lea r8, [rip+0x104fd]      ', [0x4c,0x8d,0x05,0xfd,0x04,0x01,0x00     ], 'MODE64');
TEST('lea r8, [rip+0x104d8]      ', [0x4c,0x8d,0x05,0xd8,0x04,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0x104b8]     ', [0x48,0x8d,0x15,0xb8,0x04,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x26c49]     ', [0x48,0x8d,0x05,0x49,0x6c,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x26fbc]     ', [0x48,0x8d,0x05,0xbc,0x6f,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x26f29]     ', [0x48,0x8d,0x05,0x29,0x6f,0x02,0x00     ], 'MODE64');
TEST('lea r12, [rip+0x291b4]     ', [0x4c,0x8d,0x25,0xb4,0x91,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x2902c]     ', [0x48,0x8d,0x05,0x2c,0x90,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rsp+108]         ', [0x48,0x8d,0x44,0x24,0x6c               ], 'MODE64');
TEST('lea r12, [rip+0x28d6e]     ', [0x4c,0x8d,0x25,0x6e,0x8d,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rbp+0x630]       ', [0x48,0x8d,0x85,0x30,0x06,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rbp-128]         ', [0x48,0x8d,0x45,0x80                    ], 'MODE64');
TEST('lea rax, [rip+0x28992]     ', [0x48,0x8d,0x05,0x92,0x89,0x02,0x00     ], 'MODE64');
TEST('lea rax, [r15+0x100]       ', [0x49,0x8d,0x87,0x00,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [r12+0x80]        ', [0x49,0x8d,0x84,0x24,0x80,0x00,0x00,0x00], 'MODE64');
TEST('lea rax, [r13+0x80]        ', [0x49,0x8d,0x85,0x80,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xf004]      ', [0x48,0x8d,0x05,0x04,0xf0,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xf47a]      ', [0x48,0x8d,0x05,0x7a,0xf4,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xf5e5]      ', [0x48,0x8d,0x05,0xe5,0xf5,0x00,0x00     ], 'MODE64');
TEST('lea rax, [r14+24]          ', [0x49,0x8d,0x46,0x18                    ], 'MODE64');
TEST('lea rax, [r14+48]          ', [0x49,0x8d,0x46,0x30                    ], 'MODE64');
TEST('lea rax, [r14+64]          ', [0x49,0x8d,0x46,0x40                    ], 'MODE64');
TEST('lea rax, [r14+72]          ', [0x49,0x8d,0x46,0x48                    ], 'MODE64');
TEST('lea rax, [r14+80]          ', [0x49,0x8d,0x46,0x50                    ], 'MODE64');
TEST('lea rax, [r14+81]          ', [0x49,0x8d,0x46,0x51                    ], 'MODE64');
TEST('lea rax, [r14+82]          ', [0x49,0x8d,0x46,0x52                    ], 'MODE64');
TEST('lea rax, [r14+83]          ', [0x49,0x8d,0x46,0x53                    ], 'MODE64');
TEST('lea rax, [r14+84]          ', [0x49,0x8d,0x46,0x54                    ], 'MODE64');
TEST('lea rax, [r14+85]          ', [0x49,0x8d,0x46,0x55                    ], 'MODE64');
TEST('lea rax, [r14+86]          ', [0x49,0x8d,0x46,0x56                    ], 'MODE64');
TEST('lea rax, [r14+87]          ', [0x49,0x8d,0x46,0x57                    ], 'MODE64');
TEST('lea rax, [r14+104]         ', [0x49,0x8d,0x46,0x68                    ], 'MODE64');
TEST('lea rax, [r14+112]         ', [0x49,0x8d,0x46,0x70                    ], 'MODE64');
TEST('lea rax, [r14+120]         ', [0x49,0x8d,0x46,0x78                    ], 'MODE64');
TEST('lea rax, [r14+0x80]        ', [0x49,0x8d,0x86,0x80,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [r14+0x88]        ', [0x49,0x8d,0x86,0x88,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [r14+0x90]        ', [0x49,0x8d,0x86,0x90,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x26741]     ', [0x48,0x8d,0x05,0x41,0x67,0x02,0x00     ], 'MODE64');
TEST('lea rax, [r14+88]          ', [0x49,0x8d,0x46,0x58                    ], 'MODE64');
TEST('lea rax, [r14+96]          ', [0x49,0x8d,0x46,0x60                    ], 'MODE64');
TEST('lea rbp, [rip+0x25307]     ', [0x48,0x8d,0x2d,0x07,0x53,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rdi+8]           ', [0x48,0x8d,0x47,0x08                    ], 'MODE64');
TEST('lea rax, [rdi+32]          ', [0x48,0x8d,0x47,0x20                    ], 'MODE64');
TEST('lea rax, [rdi+40]          ', [0x48,0x8d,0x47,0x28                    ], 'MODE64');
TEST('lea rax, [rdi+48]          ', [0x48,0x8d,0x47,0x30                    ], 'MODE64');
TEST('lea rax, [rdi+64]          ', [0x48,0x8d,0x47,0x40                    ], 'MODE64');
TEST('lea rax, [rdi+72]          ', [0x48,0x8d,0x47,0x48                    ], 'MODE64');
TEST('lea rax, [rdi+80]          ', [0x48,0x8d,0x47,0x50                    ], 'MODE64');
TEST('lea rax, [rdi+88]          ', [0x48,0x8d,0x47,0x58                    ], 'MODE64');
TEST('lea rax, [rdi+96]          ', [0x48,0x8d,0x47,0x60                    ], 'MODE64');
TEST('lea rax, [rdi+104]         ', [0x48,0x8d,0x47,0x68                    ], 'MODE64');
TEST('lea rax, [rdi+56]          ', [0x48,0x8d,0x47,0x38                    ], 'MODE64');
TEST('lea rax, [rdi+112]         ', [0x48,0x8d,0x47,0x70                    ], 'MODE64');
TEST('lea rax, [rdi+120]         ', [0x48,0x8d,0x47,0x78                    ], 'MODE64');
TEST('lea rax, [rdi+0x80]        ', [0x48,0x8d,0x87,0x80,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x88]        ', [0x48,0x8d,0x87,0x88,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x90]        ', [0x48,0x8d,0x87,0x90,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x98]        ', [0x48,0x8d,0x87,0x98,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xa0]        ', [0x48,0x8d,0x87,0xa0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xa8]        ', [0x48,0x8d,0x87,0xa8,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xb0]        ', [0x48,0x8d,0x87,0xb0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xb8]        ', [0x48,0x8d,0x87,0xb8,0x00,0x00,0x00     ], 'MODE64');
TEST('lea r9d, [r14+77]          ', [0x45,0x8d,0x4e,0x4d                    ], 'MODE64');
TEST('lea rax, [rdi+0xc0]        ', [0x48,0x8d,0x87,0xc0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea r9d, [r14+78]          ', [0x45,0x8d,0x4e,0x4e                    ], 'MODE64');
TEST('lea rax, [rdi+0xc8]        ', [0x48,0x8d,0x87,0xc8,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xd0]        ', [0x48,0x8d,0x87,0xd0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xd8]        ', [0x48,0x8d,0x87,0xd8,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xe0]        ', [0x48,0x8d,0x87,0xe0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xe8]        ', [0x48,0x8d,0x87,0xe8,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xf0]        ', [0x48,0x8d,0x87,0xf0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0xf8]        ', [0x48,0x8d,0x87,0xf8,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x100]       ', [0x48,0x8d,0x87,0x00,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x108]       ', [0x48,0x8d,0x87,0x08,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x110]       ', [0x48,0x8d,0x87,0x10,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x118]       ', [0x48,0x8d,0x87,0x18,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x120]       ', [0x48,0x8d,0x87,0x20,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x128]       ', [0x48,0x8d,0x87,0x28,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x130]       ', [0x48,0x8d,0x87,0x30,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x138]       ', [0x48,0x8d,0x87,0x38,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x140]       ', [0x48,0x8d,0x87,0x40,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x148]       ', [0x48,0x8d,0x87,0x48,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x150]       ', [0x48,0x8d,0x87,0x50,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x158]       ', [0x48,0x8d,0x87,0x58,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x168]       ', [0x48,0x8d,0x87,0x68,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x170]       ', [0x48,0x8d,0x87,0x70,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x178]       ', [0x48,0x8d,0x87,0x78,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x180]       ', [0x48,0x8d,0x87,0x80,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x188]       ', [0x48,0x8d,0x87,0x88,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x190]       ', [0x48,0x8d,0x87,0x90,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x160]       ', [0x48,0x8d,0x87,0x60,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1a0]       ', [0x48,0x8d,0x87,0xa0,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1a8]       ', [0x48,0x8d,0x87,0xa8,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1b0]       ', [0x48,0x8d,0x87,0xb0,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1b8]       ', [0x48,0x8d,0x87,0xb8,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1c0]       ', [0x48,0x8d,0x87,0xc0,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1c8]       ', [0x48,0x8d,0x87,0xc8,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x198]       ', [0x48,0x8d,0x87,0x98,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1d0]       ', [0x48,0x8d,0x87,0xd0,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1d8]       ', [0x48,0x8d,0x87,0xd8,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1e0]       ', [0x48,0x8d,0x87,0xe0,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1e8]       ', [0x48,0x8d,0x87,0xe8,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1f0]       ', [0x48,0x8d,0x87,0xf0,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x1f8]       ', [0x48,0x8d,0x87,0xf8,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x200]       ', [0x48,0x8d,0x87,0x00,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x208]       ', [0x48,0x8d,0x87,0x08,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x210]       ', [0x48,0x8d,0x87,0x10,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x218]       ', [0x48,0x8d,0x87,0x18,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x220]       ', [0x48,0x8d,0x87,0x20,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x228]       ', [0x48,0x8d,0x87,0x28,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x230]       ', [0x48,0x8d,0x87,0x30,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x238]       ', [0x48,0x8d,0x87,0x38,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x240]       ', [0x48,0x8d,0x87,0x40,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x248]       ', [0x48,0x8d,0x87,0x48,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x250]       ', [0x48,0x8d,0x87,0x50,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x258]       ', [0x48,0x8d,0x87,0x58,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x260]       ', [0x48,0x8d,0x87,0x60,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x268]       ', [0x48,0x8d,0x87,0x68,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x270]       ', [0x48,0x8d,0x87,0x70,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x278]       ', [0x48,0x8d,0x87,0x78,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x280]       ', [0x48,0x8d,0x87,0x80,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x288]       ', [0x48,0x8d,0x87,0x88,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x290]       ', [0x48,0x8d,0x87,0x90,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x298]       ', [0x48,0x8d,0x87,0x98,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x2a0]       ', [0x48,0x8d,0x87,0xa0,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x2a8]       ', [0x48,0x8d,0x87,0xa8,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rdi+0x2b0]       ', [0x48,0x8d,0x87,0xb0,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rcx+40]          ', [0x48,0x8d,0x41,0x28                    ], 'MODE64');
TEST('lea rax, [rip+0x24583]     ', [0x48,0x8d,0x05,0x83,0x45,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x24541]     ', [0x48,0x8d,0x05,0x41,0x45,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x24659]     ', [0x48,0x8d,0x05,0x59,0x46,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rbp+0x270]       ', [0x48,0x8d,0x85,0x70,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rbp+112]         ', [0x48,0x8d,0x45,0x70                    ], 'MODE64');
TEST('lea rax, [rbp+0x170]       ', [0x48,0x8d,0x85,0x70,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rbp+0x270]       ', [0x48,0x8d,0x95,0x70,0x02,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x24628]     ', [0x48,0x8d,0x05,0x28,0x46,0x02,0x00     ], 'MODE64');
TEST('lea r12, [rip+0x24573]     ', [0x4c,0x8d,0x25,0x73,0x45,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rbx+24]          ', [0x48,0x8d,0x43,0x18                    ], 'MODE64');
TEST('lea rax, [rbx+26]          ', [0x48,0x8d,0x43,0x1a                    ], 'MODE64');
TEST('lea rax, [rip+0x23e52]     ', [0x48,0x8d,0x05,0x52,0x3e,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x1116b]     ', [0x48,0x8d,0x05,0x6b,0x11,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x23a57]     ', [0x48,0x8d,0x05,0x57,0x3a,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x236a1]     ', [0x48,0x8d,0x05,0xa1,0x36,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x10fc5]     ', [0x48,0x8d,0x05,0xc5,0x0f,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x238af]     ', [0x48,0x8d,0x05,0xaf,0x38,0x02,0x00     ], 'MODE64');
TEST('lea r11, [rsp+0xc0]        ', [0x4c,0x8d,0x9c,0x24,0xc0,0x00,0x00,0x00], 'MODE64');
TEST('lea rdx, [rip+0xd588]      ', [0x48,0x8d,0x15,0x88,0xd5,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xd580]      ', [0x48,0x8d,0x15,0x80,0xd5,0x00,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0xd0c6]      ', [0x48,0x8d,0x0d,0xc6,0xd0,0x00,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0xc44c]      ', [0x48,0x8d,0x0d,0x4c,0xc4,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xcc30]      ', [0x48,0x8d,0x15,0x30,0xcc,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xcc28]      ', [0x48,0x8d,0x15,0x28,0xcc,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rsi+0x80]        ', [0x48,0x8d,0x86,0x80,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0xc670]      ', [0x48,0x8d,0x0d,0x70,0xc6,0x00,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0xb9d0]      ', [0x48,0x8d,0x0d,0xd0,0xb9,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rsi+0x100]       ', [0x48,0x8d,0x86,0x00,0x01,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rcx+16]          ', [0x48,0x8d,0x41,0x10                    ], 'MODE64');
TEST('lea rax, [rcx+15]          ', [0x48,0x8d,0x41,0x0f                    ], 'MODE64');
TEST('lea rsp, [rbp+16]          ', [0x48,0x8d,0x65,0x10                    ], 'MODE64');
TEST('lea rbp, [rip+0xc371]      ', [0x48,0x8d,0x2d,0x71,0xc3,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rbp+32]          ', [0x48,0x8d,0x45,0x20                    ], 'MODE64');
TEST('lea rax, [rdx-32]          ', [0x48,0x8d,0x42,0xe0                    ], 'MODE64');
TEST('lea rax, [rdx+0xc0]        ', [0x48,0x8d,0x82,0xc0,0x00,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rcx+2]           ', [0x48,0x8d,0x41,0x02                    ], 'MODE64');
TEST('lea rax, [rbx+0xb00]       ', [0x48,0x8d,0x83,0x00,0x0b,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rsp+72]          ', [0x48,0x8d,0x44,0x24,0x48               ], 'MODE64');
TEST('lea rax, [rbx+1]           ', [0x48,0x8d,0x43,0x01                    ], 'MODE64');
TEST('lea rcx, [rbp+16]          ', [0x48,0x8d,0x4d,0x10                    ], 'MODE64');
TEST('lea r8, [rip+0xdec3]       ', [0x4c,0x8d,0x05,0xc3,0xde,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rsp+64]          ', [0x48,0x8d,0x44,0x24,0x40               ], 'MODE64');
TEST('lea rax, [rcx+rax-1]       ', [0x48,0x8d,0x44,0x01,0xff               ], 'MODE64');
TEST('lea rax, [rcx+rax-2]       ', [0x48,0x8d,0x44,0x01,0xfe               ], 'MODE64');
TEST('lea rax, [rcx+rax-3]       ', [0x48,0x8d,0x44,0x01,0xfd               ], 'MODE64');
TEST('lea rax, [rcx+rax-4]       ', [0x48,0x8d,0x44,0x01,0xfc               ], 'MODE64');
TEST('lea rax, [rcx+rax-5]       ', [0x48,0x8d,0x44,0x01,0xfb               ], 'MODE64');
TEST('lea rax, [rcx+rax-6]       ', [0x48,0x8d,0x44,0x01,0xfa               ], 'MODE64');
TEST('lea rax, [rcx+rax-7]       ', [0x48,0x8d,0x44,0x01,0xf9               ], 'MODE64');
TEST('lea rax, [rcx+rax-8]       ', [0x48,0x8d,0x44,0x01,0xf8               ], 'MODE64');
TEST('lea r12, [rip+0x21734]     ', [0x4c,0x8d,0x25,0x34,0x17,0x02,0x00     ], 'MODE64');
TEST('lea rax, [rbx+32]          ', [0x48,0x8d,0x43,0x20                    ], 'MODE64');
TEST('lea rcx, [rip+0xd680]      ', [0x48,0x8d,0x0d,0x80,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0xd654]      ', [0x48,0x8d,0x0d,0x54,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xd64e]      ', [0x48,0x8d,0x15,0x4e,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xd63c]      ', [0x48,0x8d,0x15,0x3c,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xd62c]      ', [0x48,0x8d,0x15,0x2c,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xd624]      ', [0x48,0x8d,0x15,0x24,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rdx, [rip+0xd618]      ', [0x48,0x8d,0x15,0x18,0xd6,0x00,0x00     ], 'MODE64');
TEST('lea rcx, [rip+0xc1bc]      ', [0x48,0x8d,0x0d,0xbc,0xc1,0x00,0x00     ], 'MODE64');
TEST('lea r8, [rbp+16]           ', [0x4c,0x8d,0x45,0x10                    ], 'MODE64');
TEST('lea rax, [rdx+r9*4]        ', [0x4a,0x8d,0x04,0x8a                    ], 'MODE64');
TEST('lea rax, [rdx+r8*4]        ', [0x4a,0x8d,0x04,0x82                    ], 'MODE64');
TEST('lea r8, [rip+0xaa2a]       ', [0x4c,0x8d,0x05,0x2a,0xaa,0x00,0x00     ], 'MODE64');
TEST('lea r8, [rip+0xa9fd]       ', [0x4c,0x8d,0x05,0xfd,0xa9,0x00,0x00     ], 'MODE64');
TEST('lea r8, [rip+0xa9de]       ', [0x4c,0x8d,0x05,0xde,0xa9,0x00,0x00     ], 'MODE64');
TEST('lea r8, [rip+0xa9c0]       ', [0x4c,0x8d,0x05,0xc0,0xa9,0x00,0x00     ], 'MODE64');
TEST('lea r14d, [r8+rax]         ', [0x45,0x8d,0x34,0x00                    ], 'MODE64');
TEST('lea r11d, [r8+rax]         ', [0x45,0x8d,0x1c,0x00                    ], 'MODE64');
TEST('lea rax, [r11+rcx*4]       ', [0x49,0x8d,0x04,0x8b                    ], 'MODE64');
TEST('lea rax, [rax+rcx*4]       ', [0x48,0x8d,0x04,0x88                    ], 'MODE64');
TEST('lea rax, [rip+0x17050]     ', [0x48,0x8d,0x05,0x50,0x70,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0xe64]       ', [0x48,0x8d,0x05,0x64,0x0e,0x00,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x16e67]     ', [0x48,0x8d,0x05,0x67,0x6e,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x16e51]     ', [0x48,0x8d,0x05,0x51,0x6e,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x16e37]     ', [0x48,0x8d,0x05,0x37,0x6e,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rbp-65]          ', [0x48,0x8d,0x45,0xbf                    ], 'MODE64');
TEST('lea rax, [rbp-69]          ', [0x48,0x8d,0x45,0xbb                    ], 'MODE64');
TEST('lea rax, [r14-16]          ', [0x49,0x8d,0x46,0xf0                    ], 'MODE64');
TEST('lea rax, [rip+0x168d7]     ', [0x48,0x8d,0x05,0xd7,0x68,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x168af]     ', [0x48,0x8d,0x05,0xaf,0x68,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rsp+96]          ', [0x48,0x8d,0x44,0x24,0x60               ], 'MODE64');
TEST('lea rax, [rsp+0xb0]        ', [0x48,0x8d,0x84,0x24,0xb0,0x00,0x00,0x00], 'MODE64');
TEST('lea r12, [rax+rax*4]       ', [0x4c,0x8d,0x24,0x80                    ], 'MODE64');
TEST('lea rax, [rax+r12*4]       ', [0x4a,0x8d,0x04,0xa0                    ], 'MODE64');
TEST('lea rdx, [r15+rax]         ', [0x49,0x8d,0x14,0x07                    ], 'MODE64');
TEST('lea rax, [rax+r14*8]       ', [0x4a,0x8d,0x04,0xf0                    ], 'MODE64');
TEST('lea rax, [r9+rcx*8]        ', [0x49,0x8d,0x04,0xc9                    ], 'MODE64');
TEST('lea rax, [rip+0x15966]     ', [0x48,0x8d,0x05,0x66,0x59,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x15936]     ', [0x48,0x8d,0x05,0x36,0x59,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x15915]     ', [0x48,0x8d,0x05,0x15,0x59,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x158b7]     ', [0x48,0x8d,0x05,0xb7,0x58,0x01,0x00     ], 'MODE64');
TEST('lea rax, [rip+0x1580c]     ', [0x48,0x8d,0x05,0x0c,0x58,0x01,0x00     ], 'MODE64');
TEST('lea rdx, [rbp+16]          ', [0x48,0x8d,0x55,0x10                    ], 'MODE64');
TEST('lea rax, [rbp+64]          ', [0x48,0x8d,0x45,0x40                    ], 'MODE64');

TEST('lock dec dword [rax]     ', [0xf0,0xff,0x08     ], 'MODE64');
TEST('lock inc dword [rax]     ', [0xf0,0xff,0x00     ], 'MODE64');
TEST('lock add dword [rax], r9d', [0xf0,0x44,0x01,0x08], 'MODE64');

TEST('mov ecx, dword [0x693a12cc]        ', [0x8b,0x0d,0xcc,0x12,0x3a,0x69                    ], 'MODE32');
TEST('mov edi, eax                       ', [0x8b,0xf8                                        ], 'MODE32');
TEST('mov dword [ebp-28], edi            ', [0x89,0x7d,0xe4                                   ], 'MODE32');
TEST('mov eax, edi                       ', [0x8b,0xc7                                        ], 'MODE32');
TEST('mov ecx, dword [ebp-20]            ', [0x8b,0x4d,0xec                                   ], 'MODE32');
TEST('mov eax, dword [ecx]               ', [0x8b,0x01                                        ], 'MODE32');
TEST('mov ecx, dword [ebp+12]            ', [0x8b,0x4d,0x0c                                   ], 'MODE32');
TEST('mov edx, dword [ebp+8]             ', [0x8b,0x55,0x08                                   ], 'MODE32');
TEST('mov dword [ebp+12], ecx            ', [0x89,0x4d,0x0c                                   ], 'MODE32');
TEST('mov dword [ebp+8], edx             ', [0x89,0x55,0x08                                   ], 'MODE32');
TEST('mov ecx, 0xffef                    ', [0xb9,0xef,0xff,0x00,0x00                         ], 'MODE32');
TEST('mov dword [eax], edi               ', [0x89,0x38                                        ], 'MODE32');
TEST('mov ecx, dword [ebp+16]            ', [0x8b,0x4d,0x10                                   ], 'MODE32');
TEST('mov ebx, dword [ebp+8]             ', [0x8b,0x5d,0x08                                   ], 'MODE32');
TEST('mov ecx, 0xc00                     ', [0xb9,0x00,0x0c,0x00,0x00                         ], 'MODE32');
TEST('mov eax, dword [ebp+8]             ', [0x8b,0x45,0x08                                   ], 'MODE32');
TEST('mov dword [ebp+8], eax             ', [0x89,0x45,0x08                                   ], 'MODE32');
TEST('mov dword [eax+4], ecx             ', [0x89,0x48,0x04                                   ], 'MODE32');
TEST('mov dword [eax+8], ecx             ', [0x89,0x48,0x08                                   ], 'MODE32');
TEST('mov dword [eax+12], ecx            ', [0x89,0x48,0x0c                                   ], 'MODE32');
TEST('mov ecx, dword [ebp+8]             ', [0x8b,0x4d,0x08                                   ], 'MODE32');
TEST('mov dword [ecx], eax               ', [0x89,0x01                                        ], 'MODE32');
TEST('mov ecx, 0x300                     ', [0xb9,0x00,0x03,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [ebp+20]            ', [0x8b,0x4d,0x14                                   ], 'MODE32');
TEST('mov dword [eax], 0x22              ', [0xc7,0x00,0x22,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [eax], 0x21              ', [0xc7,0x00,0x21,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [ebp-0x8c], ecx          ', [0x89,0x8d,0x74,0xff,0xff,0xff                    ], 'MODE32');
TEST('mov edi, dword [ebp+24]            ', [0x8b,0x7d,0x18                                   ], 'MODE32');
TEST('mov dword [edi], edx               ', [0x89,0x17                                        ], 'MODE32');
TEST('mov ecx, dword [ebp-4]             ', [0x8b,0x4d,0xfc                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-0x88]          ', [0x8b,0x8d,0x78,0xff,0xff,0xff                    ], 'MODE32');
TEST('mov dword [edi], esi               ', [0x89,0x37                                        ], 'MODE32');
TEST('mov dword [edi], eax               ', [0x89,0x07                                        ], 'MODE32');
TEST('mov byte [edi], al                 ', [0x88,0x07                                        ], 'MODE32');
TEST('mov ecx, dword [esp+8]             ', [0x8b,0x4c,0x24,0x08                              ], 'MODE32');
TEST('mov esi, dword [ebp+8]             ', [0x8b,0x75,0x08                                   ], 'MODE32');
TEST('mov eax, dword [esi+4]             ', [0x8b,0x46,0x04                                   ], 'MODE32');
TEST('mov ecx, dword [0x693b665c]        ', [0x8b,0x0d,0x5c,0x66,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp-28], ecx            ', [0x89,0x4d,0xe4                                   ], 'MODE32');
TEST('mov eax, dword [ecx+4]             ', [0x8b,0x41,0x04                                   ], 'MODE32');
TEST('mov edx, ecx                       ', [0x8b,0xd1                                        ], 'MODE32');
TEST('mov dword [edi+4], ebx             ', [0x89,0x5f,0x04                                   ], 'MODE32');
TEST('mov dword [edi+8], ecx             ', [0x89,0x4f,0x08                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-16]            ', [0x8b,0x4d,0xf0                                   ], 'MODE32');
TEST('mov dword [ebp-8], ecx             ', [0x89,0x4d,0xf8                                   ], 'MODE32');
TEST('mov edi, dword [0x693b6664]        ', [0x8b,0x3d,0x64,0x66,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [0x693b6664], edi        ', [0x89,0x3d,0x64,0x66,0x3b,0x69                    ], 'MODE32');
TEST('mov ecx, dword [ebp-8]             ', [0x8b,0x4d,0xf8                                   ], 'MODE32');
TEST('mov dword [ebp-0x224], ecx         ', [0x89,0x8d,0xdc,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x234], edi         ', [0x89,0xbd,0xcc,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [esi+12]            ', [0x8b,0x4e,0x0c                                   ], 'MODE32');
TEST('mov dword [eax], 0x9               ', [0xc7,0x00,0x09,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [esi+4], ebx             ', [0x89,0x5e,0x04                                   ], 'MODE32');
TEST('mov dword [esi+12], ecx            ', [0x89,0x4e,0x0c                                   ], 'MODE32');
TEST('mov ecx, dword [esi]               ', [0x8b,0x0e                                        ], 'MODE32');
TEST('mov dword [esi+4], eax             ', [0x89,0x46,0x04                                   ], 'MODE32');
TEST('mov ecx, edi                       ', [0x8b,0xcf                                        ], 'MODE32');
TEST('mov ecx, dword [esi+8]             ', [0x8b,0x4e,0x08                                   ], 'MODE32');
TEST('mov byte [ecx], al                 ', [0x88,0x01                                        ], 'MODE32');
TEST('mov edi, dword [ebp+20]            ', [0x8b,0x7d,0x14                                   ], 'MODE32');
TEST('mov dword [ebp-0x21c], edi         ', [0x89,0xbd,0xe4,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, eax                       ', [0x8b,0xc8                                        ], 'MODE32');
TEST('mov eax, ecx                       ', [0x8b,0xc1                                        ], 'MODE32');
TEST('mov dword [ebp-0x220], ecx         ', [0x89,0x8d,0xe0,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov edi, dword [ebp-0x244]         ', [0x8b,0xbd,0xbc,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x244], edi         ', [0x89,0xbd,0xbc,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov edi, dword [ebp-0x21c]         ', [0x8b,0xbd,0xe4,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov eax, dword [edi]               ', [0x8b,0x07                                        ], 'MODE32');
TEST('mov edi, dword [ebp-0x210]         ', [0x8b,0xbd,0xf0,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x210]         ', [0x8b,0x8d,0xf0,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov al, byte [ecx]                 ', [0x8a,0x01                                        ], 'MODE32');
TEST('mov dword [ebp-0x210], ecx         ', [0x89,0x8d,0xf0,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, 0x200                     ', [0xb9,0x00,0x02,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp-0x23c], ecx         ', [0x89,0x8d,0xc4,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, 0x7fffffff                ', [0xb9,0xff,0xff,0xff,0x7f                         ], 'MODE32');
TEST('mov ecx, edx                       ', [0x8b,0xca                                        ], 'MODE32');
TEST('mov esi, dword [edi]               ', [0x8b,0x37                                        ], 'MODE32');
TEST('mov esi, dword [0x693b5158]        ', [0x8b,0x35,0x58,0x51,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp-0x238], ecx         ', [0x89,0x8d,0xc8,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov esi, dword [0x693b5154]        ', [0x8b,0x35,0x54,0x51,0x3b,0x69                    ], 'MODE32');
TEST('mov edi, dword [edi-4]             ', [0x8b,0x7f,0xfc                                   ], 'MODE32');
TEST('mov word [edi], ax                 ', [0x66,0x89,0x07                                   ], 'MODE32');
TEST('mov dword [ebp-0x224], 0x0000000a  ', [0xc7,0x85,0xdc,0xfd,0xff,0xff,0x0a,0x00,0x00,0x00], 'MODE32');
TEST('mov ecx, dword [edi]               ', [0x8b,0x0f                                        ], 'MODE32');
TEST('mov dword [ebp-0x23c], edi         ', [0x89,0xbd,0xc4,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov edi, ebx                       ', [0x8b,0xfb                                        ], 'MODE32');
TEST('mov byte [ebp-0x22c], 48           ', [0xc6,0x85,0xd4,0xfd,0xff,0xff,0x30               ], 'MODE32');
TEST('mov edi, edx                       ', [0x8b,0xfa                                        ], 'MODE32');
TEST('mov ecx, dword [edi-4]             ', [0x8b,0x4f,0xfc                                   ], 'MODE32');
TEST('mov edi, esi                       ', [0x8b,0xfe                                        ], 'MODE32');
TEST('mov ecx, dword [ebp-0x23c]         ', [0x8b,0x8d,0xc4,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov byte [esi], 48                 ', [0xc6,0x06,0x30                                   ], 'MODE32');
TEST('mov byte [ebp-0x22c], 45           ', [0xc6,0x85,0xd4,0xfd,0xff,0xff,0x2d               ], 'MODE32');
TEST('mov byte [ebp-0x22c], 43           ', [0xc6,0x85,0xd4,0xfd,0xff,0xff,0x2b               ], 'MODE32');
TEST('mov byte [ebp-0x22c], 32           ', [0xc6,0x85,0xd4,0xfd,0xff,0xff,0x20               ], 'MODE32');
TEST('mov edi, dword [ebp-0x240]         ', [0x8b,0xbd,0xc0,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, esi                       ', [0x8b,0xce                                        ], 'MODE32');
TEST('mov dword [ebp-0x27c], ecx         ', [0x89,0x8d,0x84,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x27c]         ', [0x8b,0x8d,0x84,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x220]         ', [0x8b,0x8d,0xe0,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x268]         ', [0x8b,0x8d,0x98,0xfd,0xff,0xff                    ], 'MODE32');
TEST('mov edi, dword [ebp+16]            ', [0x8b,0x7d,0x10                                   ], 'MODE32');
TEST('mov dword [eax], ecx               ', [0x89,0x08                                        ], 'MODE32');
TEST('mov dword [ebp-32], edi            ', [0x89,0x7d,0xe0                                   ], 'MODE32');
TEST('mov dword [ebp-36], edi            ', [0x89,0x7d,0xdc                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-40]            ', [0x8b,0x4d,0xd8                                   ], 'MODE32');
TEST('mov ebx, ecx                       ', [0x8b,0xd9                                        ], 'MODE32');
TEST('mov eax, dword [eax*8+0x693a1724]  ', [0x8b,0x04,0xc5,0x24,0x17,0x3a,0x69               ], 'MODE32');
TEST('mov ecx, ebx                       ', [0x8b,0xcb                                        ], 'MODE32');
TEST('mov dword [ebp-8], eax             ', [0x89,0x45,0xf8                                   ], 'MODE32');
TEST('mov dword fs:[0x00000000], ecx     ', [0x64,0x89,0x0d,0x00,0x00,0x00,0x00               ], 'MODE32');
TEST('mov edi, dword [ebx+8]             ', [0x8b,0x7b,0x08                                   ], 'MODE32');
TEST('mov ecx, dword [edi+4]             ', [0x8b,0x4f,0x04                                   ], 'MODE32');
TEST('mov ecx, dword [edi+12]            ', [0x8b,0x4f,0x0c                                   ], 'MODE32');
TEST('mov ecx, dword [edi+eax*4+4]       ', [0x8b,0x4c,0x87,0x04                              ], 'MODE32');
TEST('mov edx, dword [ebp-8]             ', [0x8b,0x55,0xf8                                   ], 'MODE32');
TEST('mov dword [ebp-8], ebx             ', [0x89,0x5d,0xf8                                   ], 'MODE32');
TEST('mov ecx, dword [ecx+8]             ', [0x8b,0x49,0x08                                   ], 'MODE32');
TEST('mov dword [ebp-40], edi            ', [0x89,0x7d,0xd8                                   ], 'MODE32');
TEST('mov ecx, dword [0x693a5be8]        ', [0x8b,0x0d,0xe8,0x5b,0x3a,0x69                    ], 'MODE32');
TEST('mov ecx, dword [ebp-28]            ', [0x8b,0x4d,0xe4                                   ], 'MODE32');
TEST('mov edi, dword [ebp-40]            ', [0x8b,0x7d,0xd8                                   ], 'MODE32');
TEST('mov ecx, dword [0x693a5be0]        ', [0x8b,0x0d,0xe0,0x5b,0x3a,0x69                    ], 'MODE32');
TEST('mov dword [edx+eax], ecx           ', [0x89,0x0c,0x02                                   ], 'MODE32');
TEST('mov ecx, dword [esp+20]            ', [0x8b,0x4c,0x24,0x14                              ], 'MODE32');
TEST('mov edi, dword [esp+12]            ', [0x8b,0x7c,0x24,0x0c                              ], 'MODE32');
TEST('mov ah, 51                         ', [0xb4,0x33                                        ], 'MODE32');
TEST('mov byte [edi], dl                 ', [0x88,0x17                                        ], 'MODE32');
TEST('mov edi, dword [ebp-28]            ', [0x8b,0x7d,0xe4                                   ], 'MODE32');
TEST('mov dword [ebp-0x1ad0], ecx        ', [0x89,0x8d,0x30,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1adc], ecx        ', [0x89,0x8d,0x24,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x1adc]        ', [0x8b,0x8d,0x24,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1ac4], ecx        ', [0x89,0x8d,0x3c,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1acc], ecx        ', [0x89,0x8d,0x34,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1aec], 0x0000000a ', [0xc7,0x85,0x14,0xe5,0xff,0xff,0x0a,0x00,0x00,0x00], 'MODE32');
TEST('mov ecx, dword [ebp-0x1abc]        ', [0x8b,0x8d,0x44,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov byte [ebp-12], 13              ', [0xc6,0x45,0xf4,0x0d                              ], 'MODE32');
TEST('mov ecx, dword [ebp-0x1acc]        ', [0x8b,0x8d,0x34,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebx*4+0x693b6e78]  ', [0x8b,0x0c,0x9d,0x78,0x6e,0x3b,0x69               ], 'MODE32');
TEST('mov ecx, dword [eax*4+0x693b6e78]  ', [0x8b,0x0c,0x85,0x78,0x6e,0x3b,0x69               ], 'MODE32');
TEST('mov dword [ebp-0x1acc], edi        ', [0x89,0xbd,0x34,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x1ac4]        ', [0x8b,0x8d,0x3c,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov byte [edi], 13                 ', [0xc6,0x07,0x0d                                   ], 'MODE32');
TEST('mov edi, dword [ebp-0x1acc]        ', [0x8b,0xbd,0x34,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1ac8], ecx        ', [0x89,0x8d,0x38,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov edi, dword [ebp-0x1ac8]        ', [0x8b,0xbd,0x38,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1ac8], edi        ', [0x89,0xbd,0x38,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov dword [ebp-0x1ac0], ecx        ', [0x89,0x8d,0x40,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x1ac0]        ', [0x8b,0x8d,0x40,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x1ac8]        ', [0x8b,0x8d,0x38,0xe5,0xff,0xff                    ], 'MODE32');
TEST('mov esi, ecx                       ', [0x8b,0xf1                                        ], 'MODE32');
TEST('mov edi, dword [esi]               ', [0x8b,0x3e                                        ], 'MODE32');
TEST('mov dword [esi], ecx               ', [0x89,0x0e                                        ], 'MODE32');
TEST('mov dword [ebp-40], ecx            ', [0x89,0x4d,0xd8                                   ], 'MODE32');
TEST('mov byte [eax+ecx], al             ', [0x88,0x04,0x08                                   ], 'MODE32');
TEST('mov dword [ebp-52], ecx            ', [0x89,0x4d,0xcc                                   ], 'MODE32');
TEST('mov ecx, 0xff                      ', [0xb9,0xff,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov byte [edx+edi], 32             ', [0xc6,0x04,0x3a,0x20                              ], 'MODE32');
TEST('mov edi, dword [ebp-32]            ', [0x8b,0x7d,0xe0                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-36]            ', [0x8b,0x4d,0xdc                                   ], 'MODE32');
TEST('mov dword [ebp-60], ecx            ', [0x89,0x4d,0xc4                                   ], 'MODE32');
TEST('mov byte [ecx], bl                 ', [0x88,0x19                                        ], 'MODE32');
TEST('mov ecx, dword [esi+0x88]          ', [0x8b,0x8e,0x88,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov eax, dword [esi+20]            ', [0x8b,0x46,0x14                                   ], 'MODE32');
TEST('mov dword [ebp-16], ecx            ', [0x89,0x4d,0xf0                                   ], 'MODE32');
TEST('mov edi, ecx                       ', [0x8b,0xf9                                        ], 'MODE32');
TEST('mov dword [ebp-4], ecx             ', [0x89,0x4d,0xfc                                   ], 'MODE32');
TEST('mov dword [ebp+8], esi             ', [0x89,0x75,0x08                                   ], 'MODE32');
TEST('mov dword [ebp-4], edi             ', [0x89,0x7d,0xfc                                   ], 'MODE32');
TEST('mov edi, dword [ebx+0xac]          ', [0x8b,0xbb,0xac,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov eax, dword [ebp-8]             ', [0x8b,0x45,0xf8                                   ], 'MODE32');
TEST('mov edi, dword [ebp+8]             ', [0x8b,0x7d,0x08                                   ], 'MODE32');
TEST('mov edi, dword [ebp-8]             ', [0x8b,0x7d,0xf8                                   ], 'MODE32');
TEST('mov dword [edi], ecx               ', [0x89,0x0f                                        ], 'MODE32');
TEST('mov dword [ebx+0x80], edi          ', [0x89,0xbb,0x80,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [ebp-8], esi             ', [0x89,0x75,0xf8                                   ], 'MODE32');
TEST('mov edi, dword [ebx+0xb0]          ', [0x8b,0xbb,0xb0,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov edi, dword [ebp-12]            ', [0x8b,0x7d,0xf4                                   ], 'MODE32');
TEST('mov dword [ebx+124], edi           ', [0x89,0x7b,0x7c                                   ], 'MODE32');
TEST('mov edi, dword [esi-4]             ', [0x8b,0x7e,0xfc                                   ], 'MODE32');
TEST('mov edi, 0x80                      ', [0xbf,0x80,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [edx+120]           ', [0x8b,0x4a,0x78                                   ], 'MODE32');
TEST('mov ecx, dword [edx+0x80]          ', [0x8b,0x8a,0x80,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, dword [edx+124]           ', [0x8b,0x4a,0x7c                                   ], 'MODE32');
TEST('mov ecx, dword [edx+0x88]          ', [0x8b,0x8a,0x88,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov edi, dword [ecx]               ', [0x8b,0x39                                        ], 'MODE32');
TEST('mov edi, dword [ecx-4]             ', [0x8b,0x79,0xfc                                   ], 'MODE32');
TEST('mov ecx, dword [edx+0x9c]          ', [0x8b,0x8a,0x9c,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, dword [0x693b5dd4]        ', [0x8b,0x0d,0xd4,0x5d,0x3b,0x69                    ], 'MODE32');
TEST('mov edi, dword [ebp+12]            ', [0x8b,0x7d,0x0c                                   ], 'MODE32');
TEST('mov dword [ebx+4], edi             ', [0x89,0x7b,0x04                                   ], 'MODE32');
TEST('mov dword [ebx+8], edi             ', [0x89,0x7b,0x08                                   ], 'MODE32');
TEST('mov dword [ebx+0x21c], edi         ', [0x89,0xbb,0x1c,0x02,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, 0x101                     ', [0xb9,0x01,0x01,0x00,0x00                         ], 'MODE32');
TEST('mov edi, 0x100                     ', [0xbf,0x00,0x01,0x00,0x00                         ], 'MODE32');
TEST('mov byte [ebp-0x104], 32           ', [0xc6,0x85,0xfc,0xfe,0xff,0xff,0x20               ], 'MODE32');
TEST('mov ecx, 0x88                      ', [0xb9,0x88,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp+8], edi             ', [0x89,0x7d,0x08                                   ], 'MODE32');
TEST('mov ecx, dword [eax+104]           ', [0x8b,0x48,0x68                                   ], 'MODE32');
TEST('mov dword [esi+0x21c], edi         ', [0x89,0xbe,0x1c,0x02,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, 0xfe                      ', [0xb9,0xfe,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov dword [esi+0x21c], eax         ', [0x89,0x86,0x1c,0x02,0x00,0x00                    ], 'MODE32');
TEST('mov dword [esi+8], edi             ', [0x89,0x7e,0x08                                   ], 'MODE32');
TEST('mov word [ecx], ax                 ', [0x66,0x89,0x01                                   ], 'MODE32');
TEST('mov ecx, dword [esp+4]             ', [0x8b,0x4c,0x24,0x04                              ], 'MODE32');
TEST('mov ecx, dword [esp+12]            ', [0x8b,0x4c,0x24,0x0c                              ], 'MODE32');
TEST('mov edi, dword [esp+8]             ', [0x8b,0x7c,0x24,0x08                              ], 'MODE32');
TEST('mov esi, edi                       ', [0x8b,0xf7                                        ], 'MODE32');
TEST('mov ebx, dword [edi]               ', [0x8b,0x1f                                        ], 'MODE32');
TEST('mov dword [eax], 0xc               ', [0xc7,0x00,0x0c,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [esi], edi               ', [0x89,0x3e                                        ], 'MODE32');
TEST('mov ecx, dword [esi+104]           ', [0x8b,0x4e,0x68                                   ], 'MODE32');
TEST('mov edi, dword [esi+108]           ', [0x8b,0x7e,0x6c                                   ], 'MODE32');
TEST('mov dword [esi+20], edi            ', [0x89,0x7e,0x14                                   ], 'MODE32');
TEST('mov dword [esi+112], edi           ', [0x89,0x7e,0x70                                   ], 'MODE32');
TEST('mov word [esi+0x1be], ax           ', [0x66,0x89,0x86,0xbe,0x01,0x00,0x00               ], 'MODE32');
TEST('mov dword [esi+20], eax            ', [0x89,0x46,0x14                                   ], 'MODE32');
TEST('mov ecx, dword [ebx+20]            ', [0x8b,0x4b,0x14                                   ], 'MODE32');
TEST('mov ecx, dword [ebx+16]            ', [0x8b,0x4b,0x10                                   ], 'MODE32');
TEST('mov ecx, dword [esi+16]            ', [0x8b,0x4e,0x10                                   ], 'MODE32');
TEST('mov dword [esi+8], ecx             ', [0x89,0x4e,0x08                                   ], 'MODE32');
TEST('mov edi, dword [eax+0x3b8]         ', [0x8b,0xb8,0xb8,0x03,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, dword [ebx+0xb0]          ', [0x8b,0x8b,0xb0,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [edi+4], esi             ', [0x89,0x77,0x04                                   ], 'MODE32');
TEST('mov edx, dword [edi]               ', [0x8b,0x17                                        ], 'MODE32');
TEST('mov dword [eax+0x3b8], ecx         ', [0x89,0x88,0xb8,0x03,0x00,0x00                    ], 'MODE32');
TEST('mov edi, dword [0x693b6e68]        ', [0x8b,0x3d,0x68,0x6e,0x3b,0x69                    ], 'MODE32');
TEST('mov ecx, dword [ebp+28]            ', [0x8b,0x4d,0x1c                                   ], 'MODE32');
TEST('mov ebx, dword [eax*8+0x693a3ae4]  ', [0x8b,0x1c,0xc5,0xe4,0x3a,0x3a,0x69               ], 'MODE32');
TEST('mov ecx, dword [ebp+36]            ', [0x8b,0x4d,0x24                                   ], 'MODE32');
TEST('mov esi, dword [ebp-8]             ', [0x8b,0x75,0xf8                                   ], 'MODE32');
TEST('mov ecx, dword [ebp+32]            ', [0x8b,0x4d,0x20                                   ], 'MODE32');
TEST('mov edi, dword [esi+100]           ', [0x8b,0x7e,0x64                                   ], 'MODE32');
TEST('mov dword [esi+100], edi           ', [0x89,0x7e,0x64                                   ], 'MODE32');
TEST('mov dword [ebp-36], ecx            ', [0x89,0x4d,0xdc                                   ], 'MODE32');
TEST('mov dword [0x693b7130], edi        ', [0x89,0x3d,0x30,0x71,0x3b,0x69                    ], 'MODE32');
TEST('mov word [ecx+4], 0xa00            ', [0x66,0xc7,0x41,0x04,0x00,0x0a                    ], 'MODE32');
TEST('mov ecx, dword [eax]               ', [0x8b,0x08                                        ], 'MODE32');
TEST('mov ecx, dword [0x693b7130]        ', [0x8b,0x0d,0x30,0x71,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp-44], edi            ', [0x89,0x7d,0xd4                                   ], 'MODE32');
TEST('mov dword [esi*4+0x693b6e78], ecx  ', [0x89,0x0c,0xb5,0x78,0x6e,0x3b,0x69               ], 'MODE32');
TEST('mov dword [0x693b668c], edi        ', [0x89,0x3d,0x8c,0x66,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [0x693b667c], edi        ', [0x89,0x3d,0x7c,0x66,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp+8], ecx             ', [0x89,0x4d,0x08                                   ], 'MODE32');
TEST('mov al, 34                         ', [0xb0,0x22                                        ], 'MODE32');
TEST('mov dword [edx], edi               ', [0x89,0x3a                                        ], 'MODE32');
TEST('mov byte [edi], 92                 ', [0xc6,0x07,0x5c                                   ], 'MODE32');
TEST('mov byte [edi], 0                  ', [0xc6,0x07,0x00                                   ], 'MODE32');
TEST('mov dword [0x693b6684], edi        ', [0x89,0x3d,0x84,0x66,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [0x693b5008], ecx        ', [0x89,0x0d,0x08,0x50,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [0x693b500c], ecx        ', [0x89,0x0d,0x0c,0x50,0x3b,0x69                    ], 'MODE32');
TEST('mov bl, 63                         ', [0xb3,0x3f                                        ], 'MODE32');
TEST('mov dword [ebp-20], ecx            ', [0x89,0x4d,0xec                                   ], 'MODE32');
TEST('mov ecx, dword [edx]               ', [0x8b,0x0a                                        ], 'MODE32');
TEST('mov dword [esp], ecx               ', [0x89,0x0c,0x24                                   ], 'MODE32');
TEST('mov dword [ebp-8], 0x3ff           ', [0xc7,0x45,0xf8,0xff,0x03,0x00,0x00               ], 'MODE32');
TEST('mov byte [esi], 45                 ', [0xc6,0x06,0x2d                                   ], 'MODE32');
TEST('mov ecx, dword [edx+4]             ', [0x8b,0x4a,0x04                                   ], 'MODE32');
TEST('mov dword [ebp-8], 0x3fe           ', [0xc7,0x45,0xf8,0xfe,0x03,0x00,0x00               ], 'MODE32');
TEST('mov byte [esi+2], 49               ', [0xc6,0x46,0x02,0x31                              ], 'MODE32');
TEST('mov dword [ebp-12], ecx            ', [0x89,0x4d,0xf4                                   ], 'MODE32');
TEST('mov byte [ecx], 0                  ', [0xc6,0x01,0x00                                   ], 'MODE32');
TEST('mov ecx, 0xf0000                   ', [0xb9,0x00,0x00,0x0f,0x00                         ], 'MODE32');
TEST('mov cl, 52                         ', [0xb1,0x34                                        ], 'MODE32');
TEST('mov byte [esi+1], 43               ', [0xc6,0x46,0x01,0x2b                              ], 'MODE32');
TEST('mov byte [esi+1], 45               ', [0xc6,0x46,0x01,0x2d                              ], 'MODE32');
TEST('mov ecx, dword [ebp+24]            ', [0x8b,0x4d,0x18                                   ], 'MODE32');
TEST('mov byte [ebx], 45                 ', [0xc6,0x03,0x2d                                   ], 'MODE32');
TEST('mov byte [esi], 69                 ', [0xc6,0x06,0x45                                   ], 'MODE32');
TEST('mov word [eax+esi], 0x30           ', [0x66,0xc7,0x04,0x30,0x30,0x00                    ], 'MODE32');
TEST('mov ecx, dword [ebp-12]            ', [0x8b,0x4d,0xf4                                   ], 'MODE32');
TEST('mov edi, dword [ebp-16]            ', [0x8b,0x7d,0xf0                                   ], 'MODE32');
TEST('mov dword [ecx+4], eax             ', [0x89,0x41,0x04                                   ], 'MODE32');
TEST('mov byte [ecx], dl                 ', [0x88,0x11                                        ], 'MODE32');
TEST('mov eax, dword [esp+20]            ', [0x8b,0x44,0x24,0x14                              ], 'MODE32');
TEST('mov ecx, dword [esp+24]            ', [0x8b,0x4c,0x24,0x18                              ], 'MODE32');
TEST('mov ecx, dword [esp+44]            ', [0x8b,0x4c,0x24,0x2c                              ], 'MODE32');
TEST('mov ecx, dword [ebx]               ', [0x8b,0x0b                                        ], 'MODE32');
TEST('mov ecx, 0x1                       ', [0xb9,0x01,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [eax+8]             ', [0x8b,0x48,0x08                                   ], 'MODE32');
TEST('mov ebp, dword [ecx]               ', [0x8b,0x29                                        ], 'MODE32');
TEST('mov ebx, edi                       ', [0x8b,0xdf                                        ], 'MODE32');
TEST('mov edx, edi                       ', [0x8b,0xd7                                        ], 'MODE32');
TEST('mov ecx, dword [0x693b5008]        ', [0x8b,0x0d,0x08,0x50,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [eax], 0x2a              ', [0xc7,0x00,0x2a,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, dword [esp+16]            ', [0x8b,0x4c,0x24,0x10                              ], 'MODE32');
TEST('mov ecx, dword [eax+60]            ', [0x8b,0x48,0x3c                                   ], 'MODE32');
TEST('mov ecx, 0x5a4d                    ', [0xb9,0x4d,0x5a,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [0x693b70cc]        ', [0x8b,0x0d,0xcc,0x70,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp-24], edi            ', [0x89,0x7d,0xe8                                   ], 'MODE32');
TEST('mov edi, dword [ebp-24]            ', [0x8b,0x7d,0xe8                                   ], 'MODE32');
TEST('mov ecx, dword [edi*4+0x693b6e78]  ', [0x8b,0x0c,0xbd,0x78,0x6e,0x3b,0x69               ], 'MODE32');
TEST('mov eax, dword [eax+ecx]           ', [0x8b,0x04,0x08                                   ], 'MODE32');
TEST('mov edi, dword [edi+116]           ', [0x8b,0x7f,0x74                                   ], 'MODE32');
TEST('mov ecx, dword [ebx+8]             ', [0x8b,0x4b,0x08                                   ], 'MODE32');
TEST('mov ecx, 0xffff                    ', [0xb9,0xff,0xff,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, 0x100                     ', [0xb9,0x00,0x01,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp-0x84], ecx          ', [0x89,0x8d,0x7c,0xff,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ebp-0x84]          ', [0x8b,0x8d,0x7c,0xff,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [ecx+0x90]          ', [0x8b,0x89,0x90,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, 0xf                       ', [0xb9,0x0f,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov edi, dword [edx+12]            ', [0x8b,0x7a,0x0c                                   ], 'MODE32');
TEST('mov dl, byte [edi]                 ', [0x8a,0x17                                        ], 'MODE32');
TEST('mov byte [eax], 48                 ', [0xc6,0x00,0x30                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-24]            ', [0x8b,0x4d,0xe8                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-32]            ', [0x8b,0x4d,0xe0                                   ], 'MODE32');
TEST('mov dword [ebp-8], edi             ', [0x89,0x7d,0xf8                                   ], 'MODE32');
TEST('mov dword [ebx], ecx               ', [0x89,0x0b                                        ], 'MODE32');
TEST('mov dword [ebp+12], edi            ', [0x89,0x7d,0x0c                                   ], 'MODE32');
TEST('mov edi, esp                       ', [0x8b,0xfc                                        ], 'MODE32');
TEST('mov dword [esp+20], eax            ', [0x89,0x44,0x24,0x14                              ], 'MODE32');
TEST('mov edx, dword [esp+20]            ', [0x8b,0x54,0x24,0x14                              ], 'MODE32');
TEST('mov ecx, dword [eax-4]             ', [0x8b,0x48,0xfc                                   ], 'MODE32');
TEST('mov ecx, dword [ebx+esi*4]         ', [0x8b,0x0c,0xb3                                   ], 'MODE32');
TEST('mov dword [esp+12], ecx            ', [0x89,0x4c,0x24,0x0c                              ], 'MODE32');
TEST('mov ecx, dword fs:[0x00000000]     ', [0x64,0x8b,0x0d,0x00,0x00,0x00,0x00               ], 'MODE32');
TEST('mov dword [ebx+8], ecx             ', [0x89,0x4b,0x08                                   ], 'MODE32');
TEST('mov dword [ebp+16], 0xa            ', [0xc7,0x45,0x10,0x0a,0x00,0x00,0x00               ], 'MODE32');
TEST('mov dword [ebp-64], edi            ', [0x89,0x7d,0xc0                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-56]            ', [0x8b,0x4d,0xc8                                   ], 'MODE32');
TEST('mov dword [ebp-44], ecx            ', [0x89,0x4d,0xd4                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-48]            ', [0x8b,0x4d,0xd0                                   ], 'MODE32');
TEST('mov edi, dword [ebp-48]            ', [0x8b,0x7d,0xd0                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-52]            ', [0x8b,0x4d,0xcc                                   ], 'MODE32');
TEST('mov edi, dword [ebp-52]            ', [0x8b,0x7d,0xcc                                   ], 'MODE32');
TEST('mov ecx, dword [0x693b5ed0]        ', [0x8b,0x0d,0xd0,0x5e,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp-56], ecx            ', [0x89,0x4d,0xc8                                   ], 'MODE32');
TEST('mov edi, dword [ebp-64]            ', [0x8b,0x7d,0xc0                                   ], 'MODE32');
TEST('mov ecx, dword [0x693b5ee8]        ', [0x8b,0x0d,0xe8,0x5e,0x3b,0x69                    ], 'MODE32');
TEST('mov dword [ebp-80], ecx            ', [0x89,0x4d,0xb0                                   ], 'MODE32');
TEST('mov ecx, 0x8000                    ', [0xb9,0x00,0x80,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp-112], ecx           ', [0x89,0x4d,0x90                                   ], 'MODE32');
TEST('mov byte [edi], cl                 ', [0x88,0x0f                                        ], 'MODE32');
TEST('mov dword [ebp-108], ecx           ', [0x89,0x4d,0x94                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-104]           ', [0x8b,0x4d,0x98                                   ], 'MODE32');
TEST('mov dword [ecx], edx               ', [0x89,0x11                                        ], 'MODE32');
TEST('mov ecx, dword [ebp-96]            ', [0x8b,0x4d,0xa0                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-84]            ', [0x8b,0x4d,0xac                                   ], 'MODE32');
TEST('mov dword [ebp-84], ecx            ', [0x89,0x4d,0xac                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-108]           ', [0x8b,0x4d,0x94                                   ], 'MODE32');
TEST('mov dword [ebp-104], edi           ', [0x89,0x7d,0x98                                   ], 'MODE32');
TEST('mov dword [ebp-92], edi            ', [0x89,0x7d,0xa4                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-92]            ', [0x8b,0x4d,0xa4                                   ], 'MODE32');
TEST('mov dword [ebp-92], ecx            ', [0x89,0x4d,0xa4                                   ], 'MODE32');
TEST('mov dword [edx-4], ecx             ', [0x89,0x4a,0xfc                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-80]            ', [0x8b,0x4d,0xb0                                   ], 'MODE32');
TEST('mov edi, dword [ebp-104]           ', [0x8b,0x7d,0x98                                   ], 'MODE32');
TEST('mov edi, dword [ebp-44]            ', [0x8b,0x7d,0xd4                                   ], 'MODE32');
TEST('mov dword [ebp-54], ecx            ', [0x89,0x4d,0xca                                   ], 'MODE32');
TEST('mov edi, dword [ebp-128]           ', [0x8b,0x7d,0x80                                   ], 'MODE32');
TEST('mov word [edi], cx                 ', [0x66,0x89,0x0f                                   ], 'MODE32');
TEST('mov byte [ebx+2], 45               ', [0xc6,0x43,0x02,0x2d                              ], 'MODE32');
TEST('mov byte [ebx+2], 32               ', [0xc6,0x43,0x02,0x20                              ], 'MODE32');
TEST('mov word [ebx+4], 0x30             ', [0x66,0xc7,0x43,0x04,0x30,0x00                    ], 'MODE32');
TEST('mov dword [ebp-26], edi            ', [0x89,0x7d,0xe6                                   ], 'MODE32');
TEST('mov dword [ebp-72], ecx            ', [0x89,0x4d,0xb8                                   ], 'MODE32');
TEST('mov dword [ebp-108], edi           ', [0x89,0x7d,0x94                                   ], 'MODE32');
TEST('mov dword [ebp-104], ecx           ', [0x89,0x4d,0x98                                   ], 'MODE32');
TEST('mov dword [ebp-96], edi            ', [0x89,0x7d,0xa0                                   ], 'MODE32');
TEST('mov dword [ebp-76], edi            ', [0x89,0x7d,0xb4                                   ], 'MODE32');
TEST('mov ecx, 0x7fff                    ', [0xb9,0xff,0x7f,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [ebp-64]            ', [0x8b,0x4d,0xc0                                   ], 'MODE32');
TEST('mov dword [ebp-96], ecx            ', [0x89,0x4d,0xa0                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-120]           ', [0x8b,0x4d,0x88                                   ], 'MODE32');
TEST('mov dword [ebp-64], ecx            ', [0x89,0x4d,0xc0                                   ], 'MODE32');
TEST('mov edi, dword [ebp-76]            ', [0x8b,0x7d,0xb4                                   ], 'MODE32');
TEST('mov edi, dword [ebp-124]           ', [0x8b,0x7d,0x84                                   ], 'MODE32');
TEST('mov dword [ebp-26], ecx            ', [0x89,0x4d,0xe6                                   ], 'MODE32');
TEST('mov edi, dword [ebp-108]           ', [0x8b,0x7d,0x94                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-72]            ', [0x8b,0x4d,0xb8                                   ], 'MODE32');
TEST('mov edi, 0x3fff                    ', [0xbf,0xff,0x3f,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp-68], edi            ', [0x89,0x7d,0xbc                                   ], 'MODE32');
TEST('mov edi, 0x7fff                    ', [0xbf,0xff,0x7f,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp-84], edi            ', [0x89,0x7d,0xac                                   ], 'MODE32');
TEST('mov dword [ecx-4], edi             ', [0x89,0x79,0xfc                                   ], 'MODE32');
TEST('mov edi, dword [ebp-84]            ', [0x8b,0x7d,0xac                                   ], 'MODE32');
TEST('mov edi, dword [ebp-120]           ', [0x8b,0x7d,0x88                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-116]           ', [0x8b,0x4d,0x8c                                   ], 'MODE32');
TEST('mov dword [ebp-72], edi            ', [0x89,0x7d,0xb8                                   ], 'MODE32');
TEST('mov byte [ecx+4], 48               ', [0xc6,0x41,0x04,0x30                              ], 'MODE32');
TEST('mov dword [ebp-100], edi           ', [0x89,0x7d,0x9c                                   ], 'MODE32');
TEST('mov edi, dword [ebp-100]           ', [0x8b,0x7d,0x9c                                   ], 'MODE32');
TEST('mov dword [ebp-88], ecx            ', [0x89,0x4d,0xa8                                   ], 'MODE32');
TEST('mov ecx, dword [ebp-88]            ', [0x8b,0x4d,0xa8                                   ], 'MODE32');
TEST('mov byte [ecx], 48                 ', [0xc6,0x01,0x30                                   ], 'MODE32');
TEST('mov byte [ecx+eax+4], bl           ', [0x88,0x5c,0x01,0x04                              ], 'MODE32');
TEST('mov byte [edi], 48                 ', [0xc6,0x07,0x30                                   ], 'MODE32');
TEST('mov edi, 0x200                     ', [0xbf,0x00,0x02,0x00,0x00                         ], 'MODE32');
TEST('mov edi, 0x6000                    ', [0xbf,0x00,0x60,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [ecx*4+0x693b6e78]  ', [0x8b,0x0c,0x8d,0x78,0x6e,0x3b,0x69               ], 'MODE32');
TEST('mov ecx, 0xff1a                    ', [0xb9,0x1a,0xff,0x00,0x00                         ], 'MODE32');
TEST('mov dword [ebp-8], edx             ', [0x89,0x55,0xf8                                   ], 'MODE32');
TEST('mov dword [ebx+4], ecx             ', [0x89,0x4b,0x04                                   ], 'MODE32');
TEST('mov edi, dword [ebx]               ', [0x8b,0x3b                                        ], 'MODE32');
TEST('mov dword [ebx], edi               ', [0x89,0x3b                                        ], 'MODE32');
TEST('mov ecx, dword [eax+16]            ', [0x8b,0x48,0x10                                   ], 'MODE32');
TEST('mov edi, dword [ebp-4]             ', [0x8b,0x7d,0xfc                                   ], 'MODE32');
TEST('mov edi, dword fs:[0x00000000]     ', [0x64,0x8b,0x3d,0x00,0x00,0x00,0x00               ], 'MODE32');
TEST('mov ebx, dword [ebp-8]             ', [0x8b,0x5d,0xf8                                   ], 'MODE32');
TEST('mov ecx, dword [eax+0x98]          ', [0x8b,0x88,0x98,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [esi+4], ecx             ', [0x89,0x4e,0x04                                   ], 'MODE32');
TEST('mov ecx, dword [esi+4]             ', [0x8b,0x4e,0x04                                   ], 'MODE32');
TEST('mov dword [eax+0x98], ecx          ', [0x89,0x88,0x98,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov ecx, 0x2                       ', [0xb9,0x02,0x00,0x00,0x00                         ], 'MODE32');
TEST('mov ecx, dword [eax+28]            ', [0x8b,0x48,0x1c                                   ], 'MODE32');
TEST('mov edx, dword [ecx+4]             ', [0x8b,0x51,0x04                                   ], 'MODE32');
TEST('mov dword [eax+0x8c], ecx          ', [0x89,0x88,0x8c,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [ebp+24], edi            ', [0x89,0x7d,0x18                                   ], 'MODE32');
TEST('mov eax, dword [eax+esi+4]         ', [0x8b,0x44,0x30,0x04                              ], 'MODE32');
TEST('mov ecx, dword [edx+8]             ', [0x8b,0x4a,0x08                                   ], 'MODE32');
TEST('mov eax, dword [ecx+eax*8]         ', [0x8b,0x04,0xc1                                   ], 'MODE32');
TEST('mov dword [eax+0x88], ecx          ', [0x89,0x88,0x88,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [eax+0x94], ecx          ', [0x89,0x88,0x94,0x00,0x00,0x00                    ], 'MODE32');
TEST('mov dword [eax+0x3ac], ecx         ', [0x89,0x88,0xac,0x03,0x00,0x00                    ], 'MODE32');
TEST('mov edi, dword [ebp-20]            ', [0x8b,0x7d,0xec                                   ], 'MODE32');
TEST('mov ecx, dword [eax+ecx+4]         ', [0x8b,0x4c,0x08,0x04                              ], 'MODE32');
TEST('mov edi, dword [edx]               ', [0x8b,0x3a                                        ], 'MODE32');
TEST('mov dword [ebp-12], edi            ', [0x89,0x7d,0xf4                                   ], 'MODE32');
TEST('mov edi, dword [edx-4]             ', [0x8b,0x7a,0xfc                                   ], 'MODE32');
TEST('mov edi, dword [esi+4]             ', [0x8b,0x7e,0x04                                   ], 'MODE32');
TEST('mov edi, dword [edi+eax-12]        ', [0x8b,0x7c,0x07,0xf4                              ], 'MODE32');
TEST('mov edx, dword [esi+4]             ', [0x8b,0x56,0x04                                   ], 'MODE32');
TEST('mov esi, dword [ecx+4]             ', [0x8b,0x71,0x04                                   ], 'MODE32');
TEST('mov ecx, dword [edx+ecx]           ', [0x8b,0x0c,0x0a                                   ], 'MODE32');
TEST('mov ecx, dword [eax+4]             ', [0x8b,0x48,0x04                                   ], 'MODE32');
TEST('mov ecx, dword [eax+24]            ', [0x8b,0x48,0x18                                   ], 'MODE32');
TEST('mov edi, 0x19930522                ', [0xbf,0x22,0x05,0x93,0x19                         ], 'MODE32');
TEST('mov edx, dword [edi+4]             ', [0x8b,0x57,0x04                                   ], 'MODE32');
TEST('mov eax, dword [edi+4]             ', [0x8b,0x47,0x04                                   ], 'MODE32');
TEST('mov ecx, dword [edx-0x130]         ', [0x8b,0x8a,0xd0,0xfe,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [edx-4]             ', [0x8b,0x4a,0xfc                                   ], 'MODE32');
TEST('mov ecx, dword [edx-0x1a8]         ', [0x8b,0x8a,0x58,0xfe,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [edx-8]             ', [0x8b,0x4a,0xf8                                   ], 'MODE32');
TEST('mov ecx, dword [edx-0x1b0]         ', [0x8b,0x8a,0x50,0xfe,0xff,0xff                    ], 'MODE32');
TEST('mov ecx, dword [edx-20]            ', [0x8b,0x4a,0xec                                   ], 'MODE32');
TEST('mov rax, rsp                       ', [0x48,0x8b,0xc4                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x11ac8]       ', [0x48,0x8b,0x05,0xc8,0x1a,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x11a5a]       ', [0x48,0x8b,0x05,0x5a,0x1a,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x11a20]       ', [0x48,0x8b,0x05,0x20,0x1a,0x01,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a9a7], rax       ', [0x48,0x89,0x05,0xa7,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a99a], rax       ', [0x48,0x89,0x05,0x9a,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a98d], rax       ', [0x48,0x89,0x05,0x8d,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a987], rax       ', [0x48,0x89,0x05,0x87,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a989], rax       ', [0x48,0x89,0x05,0x89,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a983], rax       ', [0x48,0x89,0x05,0x83,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a97d], rax       ', [0x48,0x89,0x05,0x7d,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2a977], rax       ', [0x48,0x89,0x05,0x77,0xa9,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x294c3]       ', [0x48,0x8b,0x05,0xc3,0x94,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0xc0], rax          ', [0x48,0x89,0x84,0x24,0xc0,0x00,0x00,0x00          ], 'MODE64');
TEST('mov r12, rcx                       ', [0x4c,0x8b,0xe1                                   ], 'MODE64');
TEST('mov rcx, r12                       ', [0x49,0x8b,0xcc                                   ], 'MODE64');
TEST('mov rdi, rax                       ', [0x48,0x8b,0xf8                                   ], 'MODE64');
TEST('mov r9, rax                        ', [0x4c,0x8b,0xc8                                   ], 'MODE64');
TEST('mov rcx, rax                       ', [0x48,0x8b,0xc8                                   ], 'MODE64');
TEST('mov qword [rbx], rax               ', [0x48,0x89,0x03                                   ], 'MODE64');
TEST('mov rcx, qword [rsp+0xc0]          ', [0x48,0x8b,0x8c,0x24,0xc0,0x00,0x00,0x00          ], 'MODE64');
TEST('mov r8, rax                        ', [0x4c,0x8b,0xc0                                   ], 'MODE64');
TEST('mov rax, qword [rcx]               ', [0x48,0x8b,0x01                                   ], 'MODE64');
TEST('mov rax, qword [rbx+8]             ', [0x48,0x8b,0x43,0x08                              ], 'MODE64');
TEST('mov rax, qword [rcx+8]             ', [0x48,0x8b,0x41,0x08                              ], 'MODE64');
TEST('mov qword [rdx+8], rax             ', [0x48,0x89,0x42,0x08                              ], 'MODE64');
TEST('mov dword [rip+0x29093], 0x0000002e', [0xc7,0x05,0x93,0x90,0x02,0x00,0x2e,0x00,0x00,0x00], 'MODE64');
TEST('mov rax, qword [rip+0x29033]       ', [0x48,0x8b,0x05,0x33,0x90,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbp+0x4a0], rax         ', [0x48,0x89,0x85,0xa0,0x04,0x00,0x00               ], 'MODE64');
TEST('mov qword [rsp+32], rax            ', [0x48,0x89,0x44,0x24,0x20                         ], 'MODE64');
TEST('mov qword [rsp+40], rax            ', [0x48,0x89,0x44,0x24,0x28                         ], 'MODE64');
TEST('mov rax, qword [rbp+0x4b8]         ', [0x48,0x8b,0x85,0xb8,0x04,0x00,0x00               ], 'MODE64');
TEST('mov qword [rbp+0xc8], rax          ', [0x48,0x89,0x85,0xc8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rbp+104], rax           ', [0x48,0x89,0x45,0x68                              ], 'MODE64');
TEST('mov qword [rsp+64], rax            ', [0x48,0x89,0x44,0x24,0x40                         ], 'MODE64');
TEST('mov rax, qword [rsp+96]            ', [0x48,0x8b,0x44,0x24,0x60                         ], 'MODE64');
TEST('mov dword [rax], 0x9               ', [0xc7,0x00,0x09,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov dword [rax], 0x22              ', [0xc7,0x00,0x22,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rbx+16]            ', [0x48,0x8b,0x43,0x10                              ], 'MODE64');
TEST('mov rax, rsi                       ', [0x48,0x8b,0xc6                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x28ce6]       ', [0x48,0x8b,0x05,0xe6,0x8c,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbp+0x1d8], rax         ', [0x48,0x89,0x85,0xd8,0x01,0x00,0x00               ], 'MODE64');
TEST('mov qword [rbp-128], rax           ', [0x48,0x89,0x45,0x80                              ], 'MODE64');
TEST('mov rax, r10                       ', [0x49,0x8b,0xc2                                   ], 'MODE64');
TEST('mov rbx, qword [rip+0x28ac1]       ', [0x48,0x8b,0x1d,0xc1,0x8a,0x02,0x00               ], 'MODE64');
TEST('mov byte [rsp+76], 48              ', [0xc6,0x44,0x24,0x4c,0x30                         ], 'MODE64');
TEST('mov r9d, 0xa                       ', [0x41,0xb9,0x0a,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, r8                        ', [0x49,0x8b,0xc0                                   ], 'MODE64');
TEST('mov byte [rbx], 48                 ', [0xc6,0x03,0x30                                   ], 'MODE64');
TEST('mov qword [rbp-120], rax           ', [0x48,0x89,0x45,0x88                              ], 'MODE64');
TEST('mov rbx, rax                       ', [0x48,0x8b,0xd8                                   ], 'MODE64');
TEST('mov qword [rbp-96], rax            ', [0x48,0x89,0x45,0xa0                              ], 'MODE64');
TEST('mov byte [rsp+76], 45              ', [0xc6,0x44,0x24,0x4c,0x2d                         ], 'MODE64');
TEST('mov byte [rsp+76], 43              ', [0xc6,0x44,0x24,0x4c,0x2b                         ], 'MODE64');
TEST('mov byte [rsp+76], 32              ', [0xc6,0x44,0x24,0x4c,0x20                         ], 'MODE64');
TEST('mov cl, 32                         ', [0xb1,0x20                                        ], 'MODE64');
TEST('mov rax, qword [rbp-128]           ', [0x48,0x8b,0x45,0x80                              ], 'MODE64');
TEST('mov cl, 48                         ', [0xb1,0x30                                        ], 'MODE64');
TEST('mov rax, qword [rbp-120]           ', [0x48,0x8b,0x45,0x88                              ], 'MODE64');
TEST('mov dword [rax], 0x16              ', [0xc7,0x00,0x16,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rdx]               ', [0x48,0x8b,0x02                                   ], 'MODE64');
TEST('mov byte [rax], cl                 ', [0x88,0x08                                        ], 'MODE64');
TEST('mov cl, 63                         ', [0xb1,0x3f                                        ], 'MODE64');
TEST('mov dword [rax], edi               ', [0x89,0x38                                        ], 'MODE64');
TEST('mov eax, 0xd                       ', [0xb8,0x0d,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, r11                       ', [0x49,0x8b,0xc3                                   ], 'MODE64');
TEST('mov rax, rcx                       ', [0x48,0x8b,0xc1                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x2baa1]       ', [0x48,0x8b,0x05,0xa1,0xba,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2ba8d]       ', [0x48,0x8b,0x05,0x8d,0xba,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2ba79]       ', [0x48,0x8b,0x05,0x79,0xba,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2ba65]       ', [0x48,0x8b,0x05,0x65,0xba,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2ba4d]       ', [0x48,0x8b,0x05,0x4d,0xba,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2badb]       ', [0x48,0x8b,0x05,0xdb,0xba,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b982], rax       ', [0x48,0x89,0x05,0x82,0xb9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b96c], rax       ', [0x48,0x89,0x05,0x6c,0xb9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b956], rax       ', [0x48,0x89,0x05,0x56,0xb9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b940], rax       ', [0x48,0x89,0x05,0x40,0xb9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b92a], rax       ', [0x48,0x89,0x05,0x2a,0xb9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b914], rax       ', [0x48,0x89,0x05,0x14,0xb9,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b8fe], rax       ', [0x48,0x89,0x05,0xfe,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b8e8], rax       ', [0x48,0x89,0x05,0xe8,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b8d2], rax       ', [0x48,0x89,0x05,0xd2,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b8bc], rax       ', [0x48,0x89,0x05,0xbc,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b8a6], rax       ', [0x48,0x89,0x05,0xa6,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b890], rax       ', [0x48,0x89,0x05,0x90,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b87a], rax       ', [0x48,0x89,0x05,0x7a,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b864], rax       ', [0x48,0x89,0x05,0x64,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b84e], rax       ', [0x48,0x89,0x05,0x4e,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b838], rax       ', [0x48,0x89,0x05,0x38,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b822], rax       ', [0x48,0x89,0x05,0x22,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b80c], rax       ', [0x48,0x89,0x05,0x0c,0xb8,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b7f6], rax       ', [0x48,0x89,0x05,0xf6,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b7e0], rax       ', [0x48,0x89,0x05,0xe0,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b7ca], rax       ', [0x48,0x89,0x05,0xca,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b7bc], rax       ', [0x48,0x89,0x05,0xbc,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b796], rax       ', [0x48,0x89,0x05,0x96,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b788], rax       ', [0x48,0x89,0x05,0x88,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b772], rax       ', [0x48,0x89,0x05,0x72,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b75c], rax       ', [0x48,0x89,0x05,0x5c,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b746], rax       ', [0x48,0x89,0x05,0x46,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b730], rax       ', [0x48,0x89,0x05,0x30,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b71a], rax       ', [0x48,0x89,0x05,0x1a,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b704], rax       ', [0x48,0x89,0x05,0x04,0xb7,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b6ee], rax       ', [0x48,0x89,0x05,0xee,0xb6,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b6d8], rax       ', [0x48,0x89,0x05,0xd8,0xb6,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b6cc], rax       ', [0x48,0x89,0x05,0xcc,0xb6,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x297a6], rax       ', [0x48,0x89,0x05,0xa6,0x97,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2b3c8], rax       ', [0x48,0x89,0x05,0xc8,0xb3,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x285b6]       ', [0x48,0x8b,0x05,0xb6,0x85,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rdi]               ', [0x48,0x8b,0x07                                   ], 'MODE64');
TEST('mov rsi, rax                       ', [0x48,0x8b,0xf0                                   ], 'MODE64');
TEST('mov qword [rsp+48], rax            ', [0x48,0x89,0x44,0x24,0x30                         ], 'MODE64');
TEST('mov r12, rsi                       ', [0x4c,0x8b,0xe6                                   ], 'MODE64');
TEST('mov r15, rax                       ', [0x4c,0x8b,0xf8                                   ], 'MODE64');
TEST('mov qword [rsp+56], rax            ', [0x48,0x89,0x44,0x24,0x38                         ], 'MODE64');
TEST('mov qword [rdi], rax               ', [0x48,0x89,0x07                                   ], 'MODE64');
TEST('mov r12, rbx                       ', [0x4c,0x8b,0xe3                                   ], 'MODE64');
TEST('mov rax, qword [r9+rax*8+8]        ', [0x49,0x8b,0x44,0xc1,0x08                         ], 'MODE64');
TEST('mov rax, qword [rip+0x27276]       ', [0x48,0x8b,0x05,0x76,0x72,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0x240], rax         ', [0x48,0x89,0x84,0x24,0x40,0x02,0x00,0x00          ], 'MODE64');
TEST('mov qword [rip+0x295b0], rax       ', [0x48,0x89,0x05,0xb0,0x95,0x02,0x00               ], 'MODE64');
TEST('mov r12, qword [r9+8]              ', [0x4d,0x8b,0x61,0x08                              ], 'MODE64');
TEST('mov rax, qword [r14+64]            ', [0x49,0x8b,0x46,0x40                              ], 'MODE64');
TEST('mov rax, qword [r14+40]            ', [0x49,0x8b,0x46,0x28                              ], 'MODE64');
TEST('mov rax, qword [rsi+0xa0]          ', [0x48,0x8b,0x86,0xa0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [r14], rax               ', [0x49,0x89,0x06                                   ], 'MODE64');
TEST('mov qword [rip+0x297c7], rax       ', [0x48,0x89,0x05,0xc7,0x97,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x297aa], rax       ', [0x48,0x89,0x05,0xaa,0x97,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2977f]       ', [0x48,0x8b,0x05,0x7f,0x97,0x02,0x00               ], 'MODE64');
TEST('mov rax, 0x2aaaaaaaaaaaaaab        ', [0x48,0xb8,0xab,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x2a], 'MODE64');
TEST('mov rax, rbx                       ', [0x48,0x8b,0xc3                                   ], 'MODE64');
TEST('mov rax, qword [r12+rdi*8]         ', [0x49,0x8b,0x04,0xfc                              ], 'MODE64');
TEST('mov rax, qword [rip+0x2686c]       ', [0x48,0x8b,0x05,0x6c,0x68,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbp+0x1a30], rax        ', [0x48,0x89,0x85,0x30,0x1a,0x00,0x00               ], 'MODE64');
TEST('mov dword [rax], r12d              ', [0x44,0x89,0x20                                   ], 'MODE64');
TEST('mov rax, rdi                       ', [0x48,0x8b,0xc7                                   ], 'MODE64');
TEST('mov dword [rax], ecx               ', [0x89,0x08                                        ], 'MODE64');
TEST('mov rax, qword [rax+rdi*8]         ', [0x48,0x8b,0x04,0xf8                              ], 'MODE64');
TEST('mov rax, qword [rsp+72]            ', [0x48,0x8b,0x44,0x24,0x48                         ], 'MODE64');
TEST('mov rax, r15                       ', [0x49,0x8b,0xc7                                   ], 'MODE64');
TEST('mov rax, qword [rsp+88]            ', [0x48,0x8b,0x44,0x24,0x58                         ], 'MODE64');
TEST('mov byte [rsp+108], 13             ', [0xc6,0x44,0x24,0x6c,0x0d                         ], 'MODE64');
TEST('mov rcx, qword [r12+r15*8]         ', [0x4b,0x8b,0x0c,0xfc                              ], 'MODE64');
TEST('mov rax, qword [r12+r15*8]         ', [0x4b,0x8b,0x04,0xfc                              ], 'MODE64');
TEST('mov dword [rax], esi               ', [0x89,0x30                                        ], 'MODE64');
TEST('mov r12, r14                       ', [0x4d,0x8b,0xe6                                   ], 'MODE64');
TEST('mov edx, 0xd                       ', [0xba,0x0d,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov al, byte [r12]                 ', [0x41,0x8a,0x04,0x24                              ], 'MODE64');
TEST('mov r8d, 0xd                       ', [0x41,0xb8,0x0d,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rdx, rax                       ', [0x48,0x8b,0xd0                                   ], 'MODE64');
TEST('mov dword [rax], 0x1c              ', [0xc7,0x00,0x1c,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov dword [rax], ebx               ', [0x89,0x18                                        ], 'MODE64');
TEST('mov rax, qword [rip+0x28c3b]       ', [0x48,0x8b,0x05,0x3b,0x8c,0x02,0x00               ], 'MODE64');
TEST('mov rdx, qword [rax+r15*8]         ', [0x4a,0x8b,0x14,0xf8                              ], 'MODE64');
TEST('mov rax, qword [rip+0x28c1d]       ', [0x48,0x8b,0x05,0x1d,0x8c,0x02,0x00               ], 'MODE64');
TEST('mov rcx, qword [rax+r15*8]         ', [0x4a,0x8b,0x0c,0xf8                              ], 'MODE64');
TEST('mov rax, qword [rip+0x25ec2]       ', [0x48,0x8b,0x05,0xc2,0x5e,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0x88], rax          ', [0x48,0x89,0x84,0x24,0x88,0x00,0x00,0x00          ], 'MODE64');
TEST('mov qword [rsp+88], rax            ', [0x48,0x89,0x44,0x24,0x58                         ], 'MODE64');
TEST('mov r12, rax                       ', [0x4c,0x8b,0xe0                                   ], 'MODE64');
TEST('mov r13, rax                       ', [0x4c,0x8b,0xe8                                   ], 'MODE64');
TEST('mov rbp, rax                       ', [0x48,0x8b,0xe8                                   ], 'MODE64');
TEST('mov byte [rax+rbp], 32             ', [0xc6,0x04,0x28,0x20                              ], 'MODE64');
TEST('mov qword [rdi+0xf8], rax          ', [0x48,0x89,0x87,0xf8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rdi+0x108], rax         ', [0x48,0x89,0x87,0x08,0x01,0x00,0x00               ], 'MODE64');
TEST('mov qword [rdi+0x110], rax         ', [0x48,0x89,0x87,0x10,0x01,0x00,0x00               ], 'MODE64');
TEST('mov qword [rdi+0x118], rax         ', [0x48,0x89,0x87,0x18,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rcx+0xf8]          ', [0x48,0x8b,0x81,0xf8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rcx+0x108], rax         ', [0x48,0x89,0x81,0x08,0x01,0x00,0x00               ], 'MODE64');
TEST('mov qword [rcx+0x110], rax         ', [0x48,0x89,0x81,0x10,0x01,0x00,0x00               ], 'MODE64');
TEST('mov qword [rcx+0x118], rax         ', [0x48,0x89,0x81,0x18,0x01,0x00,0x00               ], 'MODE64');
TEST('mov r14, rax                       ', [0x4c,0x8b,0xf0                                   ], 'MODE64');
TEST('mov r9d, 0x50                      ', [0x41,0xb9,0x50,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x51                      ', [0x41,0xb9,0x51,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x54                      ', [0x41,0xb9,0x54,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x55                      ', [0x41,0xb9,0x55,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x56                      ', [0x41,0xb9,0x56,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x57                      ', [0x41,0xb9,0x57,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x52                      ', [0x41,0xb9,0x52,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r9d, 0x53                      ', [0x41,0xb9,0x53,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rax+rdx+16]        ', [0x48,0x8b,0x44,0x10,0x10                         ], 'MODE64');
TEST('mov qword [r14+rdx+16], rax        ', [0x49,0x89,0x44,0x16,0x10                         ], 'MODE64');
TEST('mov rax, qword [rsi+0xf0]          ', [0x48,0x8b,0x86,0xf0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rcx, qword [rax]               ', [0x48,0x8b,0x08                                   ], 'MODE64');
TEST('mov qword [r14+88], rcx            ', [0x49,0x89,0x4e,0x58                              ], 'MODE64');
TEST('mov qword [r14+96], rcx            ', [0x49,0x89,0x4e,0x60                              ], 'MODE64');
TEST('mov dword [r12], 0x1               ', [0x41,0xc7,0x04,0x24,0x01,0x00,0x00,0x00          ], 'MODE64');
TEST('mov rax, qword [rsi+0xe8]          ', [0x48,0x8b,0x86,0xe8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rsi+0xd8], r12          ', [0x4c,0x89,0xa6,0xd8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x26391]       ', [0x48,0x8b,0x05,0x91,0x63,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2638c]       ', [0x48,0x8b,0x05,0x8c,0x63,0x02,0x00               ], 'MODE64');
TEST('mov qword [r14+8], rax             ', [0x49,0x89,0x46,0x08                              ], 'MODE64');
TEST('mov rax, qword [rip+0x26389]       ', [0x48,0x8b,0x05,0x89,0x63,0x02,0x00               ], 'MODE64');
TEST('mov qword [r14+16], rax            ', [0x49,0x89,0x46,0x10                              ], 'MODE64');
TEST('mov rax, qword [rip+0x263c6]       ', [0x48,0x8b,0x05,0xc6,0x63,0x02,0x00               ], 'MODE64');
TEST('mov qword [r14+88], rax            ', [0x49,0x89,0x46,0x58                              ], 'MODE64');
TEST('mov rax, qword [rip+0x263c3]       ', [0x48,0x8b,0x05,0xc3,0x63,0x02,0x00               ], 'MODE64');
TEST('mov qword [r14+96], rax            ', [0x49,0x89,0x46,0x60                              ], 'MODE64');
TEST('mov dword [r12], ebp               ', [0x41,0x89,0x2c,0x24                              ], 'MODE64');
TEST('mov rax, qword [rsi+0xe0]          ', [0x48,0x8b,0x86,0xe0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rdi+0x120]         ', [0x48,0x8b,0x87,0x20,0x01,0x00,0x00               ], 'MODE64');
TEST('mov r9d, 0x31                      ', [0x41,0xb9,0x31,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov qword [rdi+0x2b8], rax         ', [0x48,0x89,0x87,0xb8,0x02,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rcx+0xd8]          ', [0x48,0x8b,0x81,0xd8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rcx+0xe8]          ', [0x48,0x8b,0x81,0xe8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rcx+0xe0]          ', [0x48,0x8b,0x81,0xe0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rdx, qword [rax]               ', [0x48,0x8b,0x10                                   ], 'MODE64');
TEST('mov rax, qword [rcx+0x120]         ', [0x48,0x8b,0x81,0x20,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rcx+0xf0]          ', [0x48,0x8b,0x81,0xf0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rbx+0xd8]          ', [0x48,0x8b,0x83,0xd8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rbx+0xf8]          ', [0x48,0x8b,0x83,0xf8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov ecx, 0xc                       ', [0xb9,0x0c,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [rsp+32]            ', [0x48,0x8b,0x44,0x24,0x20                         ], 'MODE64');
TEST('mov qword [rsi+4], rax             ', [0x48,0x89,0x46,0x04                              ], 'MODE64');
TEST('mov qword [rsi+0x220], rax         ', [0x48,0x89,0x86,0x20,0x02,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x23c6f]       ', [0x48,0x8b,0x05,0x6f,0x3c,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbp+0x470], rax         ', [0x48,0x89,0x85,0x70,0x04,0x00,0x00               ], 'MODE64');
TEST('mov byte [rsp+112], 32             ', [0xc6,0x44,0x24,0x70,0x20                         ], 'MODE64');
TEST('mov byte [rsp+rcx+112], 32         ', [0xc6,0x44,0x0c,0x70,0x20                         ], 'MODE64');
TEST('mov ecx, 0xd                       ', [0xb9,0x0d,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [rip+0x24932]       ', [0x48,0x8b,0x05,0x32,0x49,0x02,0x00               ], 'MODE64');
TEST('mov qword [rdi+0xb8], rax          ', [0x48,0x89,0x87,0xb8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x24924]       ', [0x48,0x8b,0x05,0x24,0x49,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rsi+0xb8]          ', [0x48,0x8b,0x86,0xb8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rax+32]            ', [0x48,0x8b,0x40,0x20                              ], 'MODE64');
TEST('mov qword [rcx+32], rax            ', [0x48,0x89,0x41,0x20                              ], 'MODE64');
TEST('mov esi, 0xd                       ', [0xbe,0x0d,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [rbx+0x220]         ', [0x48,0x8b,0x83,0x20,0x02,0x00,0x00               ], 'MODE64');
TEST('mov qword [rip+0x25ebd], rax       ', [0x48,0x89,0x05,0xbd,0x5e,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2378f]       ', [0x48,0x8b,0x05,0x8f,0x37,0x02,0x00               ], 'MODE64');
TEST('mov rax, r12                       ', [0x49,0x8b,0xc4                                   ], 'MODE64');
TEST('mov rax, qword [rip+0xd623]        ', [0x48,0x8b,0x05,0x23,0xd6,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0xd612]        ', [0x48,0x8b,0x05,0x12,0xd6,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0xd601]        ', [0x48,0x8b,0x05,0x01,0xd6,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0xd5f0]        ', [0x48,0x8b,0x05,0xf0,0xd5,0x00,0x00               ], 'MODE64');
TEST('mov qword [rbx+0x220], rax         ', [0x48,0x89,0x83,0x20,0x02,0x00,0x00               ], 'MODE64');
TEST('mov rsi, qword [rip+0xd529]        ', [0x48,0x8b,0x35,0x29,0xd5,0x00,0x00               ], 'MODE64');
TEST('mov rsi, qword [rip+0xd518]        ', [0x48,0x8b,0x35,0x18,0xd5,0x00,0x00               ], 'MODE64');
TEST('mov rsi, qword [rip+0xd507]        ', [0x48,0x8b,0x35,0x07,0xd5,0x00,0x00               ], 'MODE64');
TEST('mov rsi, qword [rip+0xd4f6]        ', [0x48,0x8b,0x35,0xf6,0xd4,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rcx+16]            ', [0x48,0x8b,0x41,0x10                              ], 'MODE64');
TEST('mov rax, qword [rcx+24]            ', [0x48,0x8b,0x41,0x18                              ], 'MODE64');
TEST('mov ebx, 0x22                      ', [0xbb,0x22,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov edi, 0x24                      ', [0xbf,0x24,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov ecx, 0x28                      ', [0xb9,0x28,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov dword [rax], 0xc               ', [0xc7,0x00,0x0c,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov ecx, 0xa                       ', [0xb9,0x0a,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov edi, 0xd                       ', [0xbf,0x0d,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov qword [rcx+0xa0], rax          ', [0x48,0x89,0x81,0xa0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov eax, 0x43                      ', [0xb8,0x43,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov qword [rcx+0xb8], rax          ', [0x48,0x89,0x81,0xb8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rbx+0xb8]          ', [0x48,0x8b,0x83,0xb8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x234e3]       ', [0x48,0x8b,0x05,0xe3,0x34,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbx+0xc0], rax          ', [0x48,0x89,0x83,0xc0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x22a60]       ', [0x48,0x8b,0x05,0x60,0x2a,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0xb0], rax          ', [0x48,0x89,0x84,0x24,0xb0,0x00,0x00,0x00          ], 'MODE64');
TEST('mov esi, 0x40                      ', [0xbe,0x40,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov r14d, 0x55                     ', [0x41,0xbe,0x55,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rip+0x226dc]       ', [0x48,0x8b,0x05,0xdc,0x26,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0x120], rax         ', [0x48,0x89,0x84,0x24,0x20,0x01,0x00,0x00          ], 'MODE64');
TEST('mov r9d, 0x78                      ', [0x41,0xb9,0x78,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov edx, 0x55                      ', [0xba,0x55,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [rip+0x2254b]       ', [0x48,0x8b,0x05,0x4b,0x25,0x02,0x00               ], 'MODE64');
TEST('mov r9d, 0x9                       ', [0x41,0xb9,0x09,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r8d, 0x9                       ', [0x41,0xb8,0x09,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rip+0x224db]       ', [0x48,0x8b,0x05,0xdb,0x24,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0xe0], rax          ', [0x48,0x89,0x84,0x24,0xe0,0x00,0x00,0x00          ], 'MODE64');
TEST('mov rax, qword [rbx]               ', [0x48,0x8b,0x03                                   ], 'MODE64');
TEST('mov edx, 0x40                      ', [0xba,0x40,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov r9d, 0x40                      ', [0x41,0xb9,0x40,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov edx, 0x5f                      ', [0xba,0x5f,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov qword [rsp+32], r12            ', [0x4c,0x89,0x64,0x24,0x20                         ], 'MODE64');
TEST('mov rax, qword [rip+0x2224a]       ', [0x48,0x8b,0x05,0x4a,0x22,0x02,0x00               ], 'MODE64');
TEST('mov qword [rsp+0x110], rax         ', [0x48,0x89,0x84,0x24,0x10,0x01,0x00,0x00          ], 'MODE64');
TEST('mov rax, qword [rip+0x22015]       ', [0x48,0x8b,0x05,0x15,0x20,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x21deb]       ', [0x48,0x8b,0x05,0xeb,0x1d,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x21aab]       ', [0x48,0x8b,0x05,0xab,0x1a,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbp-16], rax            ', [0x48,0x89,0x45,0xf0                              ], 'MODE64');
TEST('mov rax, qword [rdi+0x140]         ', [0x48,0x8b,0x87,0x40,0x01,0x00,0x00               ], 'MODE64');
TEST('mov edi, 0x55                      ', [0xbf,0x55,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov edi, 0x40                      ', [0xbf,0x40,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [rip+0x21686]       ', [0x48,0x8b,0x05,0x86,0x16,0x02,0x00               ], 'MODE64');
TEST('mov r12, r8                        ', [0x4d,0x8b,0xe0                                   ], 'MODE64');
TEST('mov rax, 0x7ffffffffffffff0        ', [0x48,0xb8,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x7f], 'MODE64');
TEST('mov rax, 0xffffffffffffff0         ', [0x48,0xb8,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f], 'MODE64');
TEST('mov dword [rax], 0xdddd            ', [0xc7,0x00,0xdd,0xdd,0x00,0x00                    ], 'MODE64');
TEST('mov r8, r12                        ', [0x4d,0x8b,0xc4                                   ], 'MODE64');
TEST('mov rax, qword [rsp+0x90]          ', [0x48,0x8b,0x84,0x24,0x90,0x00,0x00,0x00          ], 'MODE64');
TEST('mov r8d, 0x55                      ', [0x41,0xb8,0x55,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rip+0x2508d]       ', [0x48,0x8b,0x05,0x8d,0x50,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2504e]       ', [0x48,0x8b,0x05,0x4e,0x50,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x25013]       ', [0x48,0x8b,0x05,0x13,0x50,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x24fdd]       ', [0x48,0x8b,0x05,0xdd,0x4f,0x02,0x00               ], 'MODE64');
TEST('mov qword [r11-24], rax            ', [0x49,0x89,0x43,0xe8                              ], 'MODE64');
TEST('mov qword [r11-32], rax            ', [0x49,0x89,0x43,0xe0                              ], 'MODE64');
TEST('mov qword [r11-40], rax            ', [0x49,0x89,0x43,0xd8                              ], 'MODE64');
TEST('mov rax, qword [rsp+0x80]          ', [0x48,0x8b,0x84,0x24,0x80,0x00,0x00,0x00          ], 'MODE64');
TEST('mov qword [r11-56], rax            ', [0x49,0x89,0x43,0xc8                              ], 'MODE64');
TEST('mov rax, qword [rbp-32]            ', [0x48,0x8b,0x45,0xe0                              ], 'MODE64');
TEST('mov rax, qword [rbp-16]            ', [0x48,0x8b,0x45,0xf0                              ], 'MODE64');
TEST('mov rax, qword [rip+0x20ef2]       ', [0x48,0x8b,0x05,0xf2,0x0e,0x02,0x00               ], 'MODE64');
TEST('mov qword [rbp+8], rax             ', [0x48,0x89,0x45,0x08                              ], 'MODE64');
TEST('mov r12, r9                        ', [0x4d,0x8b,0xe1                                   ], 'MODE64');
TEST('mov rax, r9                        ', [0x49,0x8b,0xc1                                   ], 'MODE64');
TEST('mov rax, qword [rbp+104]           ', [0x48,0x8b,0x45,0x68                              ], 'MODE64');
TEST('mov eax, dword [rsp+0xb8]          ', [0x8b,0x84,0x24,0xb8,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rsp+0xa8]          ', [0x48,0x8b,0x84,0x24,0xa8,0x00,0x00,0x00          ], 'MODE64');
TEST('mov edx, 0x30                      ', [0xba,0x30,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [rbx+0xa0]          ', [0x48,0x8b,0x83,0xa0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rax+32], r12            ', [0x4c,0x89,0x60,0x20                              ], 'MODE64');
TEST('mov ecx, 0xb                       ', [0xb9,0x0b,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov edi, 0x58                      ', [0xbf,0x58,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov qword [rip+0x231d1], rax       ', [0x48,0x89,0x05,0xd1,0x31,0x02,0x00               ], 'MODE64');
TEST('mov dword [rcx+80], r12d           ', [0x44,0x89,0x61,0x50                              ], 'MODE64');
TEST('mov rax, qword [rip+0x23188]       ', [0x48,0x8b,0x05,0x88,0x31,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rsp+0x98]          ', [0x48,0x8b,0x84,0x24,0x98,0x00,0x00,0x00          ], 'MODE64');
TEST('mov qword [r8+rdx*8], rax          ', [0x49,0x89,0x04,0xd0                              ], 'MODE64');
TEST('mov rax, qword [r8+rdx*8]          ', [0x49,0x8b,0x04,0xd0                              ], 'MODE64');
TEST('mov rax, qword [rsi]               ', [0x48,0x8b,0x06                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x2337d]       ', [0x48,0x8b,0x05,0x7d,0x33,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rax+rsi*8]         ', [0x48,0x8b,0x04,0xf0                              ], 'MODE64');
TEST('mov r12, qword [r11+56]            ', [0x4d,0x8b,0x63,0x38                              ], 'MODE64');
TEST('mov sil, 34                        ', [0x40,0xb6,0x22                                   ], 'MODE64');
TEST('mov byte [rdi], 92                 ', [0xc6,0x07,0x5c                                   ], 'MODE64');
TEST('mov qword [rip+0x22240], rax       ', [0x48,0x89,0x05,0x40,0x22,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x2020c]       ', [0x48,0x8b,0x05,0x0c,0x02,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rbp+24]            ', [0x48,0x8b,0x45,0x18                              ], 'MODE64');
TEST('mov qword [rbp+16], rax            ', [0x48,0x89,0x45,0x10                              ], 'MODE64');
TEST('mov qword [rip+0x20189], rax       ', [0x48,0x89,0x05,0x89,0x01,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x20182], rax       ', [0x48,0x89,0x05,0x82,0x01,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rsp+112]           ', [0x48,0x8b,0x44,0x24,0x70                         ], 'MODE64');
TEST('mov r15d, 0x30                     ', [0x41,0xbf,0x30,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [r14]               ', [0x49,0x8b,0x06                                   ], 'MODE64');
TEST('mov byte [rdi], 45                 ', [0xc6,0x07,0x2d                                   ], 'MODE64');
TEST('mov edx, 0x65                      ', [0xba,0x65,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, 0x7ff0000000000000        ', [0x48,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x7f], 'MODE64');
TEST('mov byte [rdi], 49                 ', [0xc6,0x07,0x31                                   ], 'MODE64');
TEST('mov rax, qword [rsp+48]            ', [0x48,0x8b,0x44,0x24,0x30                         ], 'MODE64');
TEST('mov cl, byte [rax]                 ', [0x8a,0x08                                        ], 'MODE64');
TEST('mov byte [rdi], 43                 ', [0xc6,0x07,0x2b                                   ], 'MODE64');
TEST('mov rax, 0x20c49ba5e353f7cf        ', [0x48,0xb8,0xcf,0xf7,0x53,0xe3,0xa5,0x9b,0xc4,0x20], 'MODE64');
TEST('mov rax, rdx                       ', [0x48,0x8b,0xc2                                   ], 'MODE64');
TEST('mov rax, 0x6666666666666667        ', [0x48,0xb8,0x67,0x66,0x66,0x66,0x66,0x66,0x66,0x66], 'MODE64');
TEST('mov byte [rbx], 69                 ', [0xc6,0x03,0x45                                   ], 'MODE64');
TEST('mov rax, qword [rbp+16]            ', [0x48,0x8b,0x45,0x10                              ], 'MODE64');
TEST('mov byte [rbx+1], 45               ', [0xc6,0x43,0x01,0x2d                              ], 'MODE64');
TEST('mov rax, qword [rip+0x1f93d]       ', [0x48,0x8b,0x05,0x3d,0xf9,0x01,0x00               ], 'MODE64');
TEST('mov qword [rsp+112], rax           ', [0x48,0x89,0x44,0x24,0x70                         ], 'MODE64');
TEST('mov dword [rax], ebp               ', [0x89,0x28                                        ], 'MODE64');
TEST('mov rax, qword [rsp+0xd8]          ', [0x48,0x8b,0x84,0x24,0xd8,0x00,0x00,0x00          ], 'MODE64');
TEST('mov word [rcx+rax], 0x30           ', [0x66,0xc7,0x04,0x01,0x30,0x00                    ], 'MODE64');
TEST('mov byte [rdi], 48                 ', [0xc6,0x07,0x30                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x1f6e4]       ', [0x48,0x8b,0x05,0xe4,0xf6,0x01,0x00               ], 'MODE64');
TEST('mov qword [rsp+96], rax            ', [0x48,0x89,0x44,0x24,0x60                         ], 'MODE64');
TEST('mov rax, qword [rsp+0xc0]          ', [0x48,0x8b,0x84,0x24,0xc0,0x00,0x00,0x00          ], 'MODE64');
TEST('mov rax, qword [rip+0x1f60b]       ', [0x48,0x8b,0x05,0x0b,0xf6,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [r8+0xf0]           ', [0x49,0x8b,0x80,0xf0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x1f24a]       ', [0x48,0x8b,0x05,0x4a,0xf2,0x01,0x00               ], 'MODE64');
TEST('mov r12, rdx                       ', [0x4c,0x8b,0xe2                                   ], 'MODE64');
TEST('mov dl, byte [rax]                 ', [0x8a,0x10                                        ], 'MODE64');
TEST('mov rax, qword [rdx+rax*8]         ', [0x48,0x8b,0x04,0xc2                              ], 'MODE64');
TEST('mov qword [rbx+16], rax            ', [0x48,0x89,0x43,0x10                              ], 'MODE64');
TEST('mov rax, qword [rsp+64]            ', [0x48,0x8b,0x44,0x24,0x40                         ], 'MODE64');
TEST('mov dword [rax], 0x2a              ', [0xc7,0x00,0x2a,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov ebx, dword [rax]               ', [0x8b,0x18                                        ], 'MODE64');
TEST('mov qword [rip+0x2275a], rax       ', [0x48,0x89,0x05,0x5a,0x27,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2274b], rax       ', [0x48,0x89,0x05,0x4b,0x27,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x22678], rax       ', [0x48,0x89,0x05,0x78,0x26,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x22653], rax       ', [0x48,0x89,0x05,0x53,0x26,0x02,0x00               ], 'MODE64');
TEST('mov rbx, r12                       ', [0x49,0x8b,0xdc                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x1e8da]       ', [0x48,0x8b,0x05,0xda,0xe8,0x01,0x00               ], 'MODE64');
TEST('mov qword [rsp+72], rax            ', [0x48,0x89,0x44,0x24,0x48                         ], 'MODE64');
TEST('mov qword [rip+0x2145a], rax       ', [0x48,0x89,0x05,0x5a,0x14,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x21442], rax       ', [0x48,0x89,0x05,0x42,0x14,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x2142a], rax       ', [0x48,0x89,0x05,0x2a,0x14,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x21424], rax       ', [0x48,0x89,0x05,0x24,0x14,0x02,0x00               ], 'MODE64');
TEST('mov qword [rip+0x213f7], rax       ', [0x48,0x89,0x05,0xf7,0x13,0x02,0x00               ], 'MODE64');
TEST('mov r9d, 0xc                       ', [0x41,0xb9,0x0c,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rip+0x212f9]       ', [0x48,0x8b,0x05,0xf9,0x12,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x212ce]       ', [0x48,0x8b,0x05,0xce,0x12,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x212a9]       ', [0x48,0x8b,0x05,0xa9,0x12,0x02,0x00               ], 'MODE64');
TEST('mov rax, qword [r14+rdi*8]         ', [0x49,0x8b,0x04,0xfe                              ], 'MODE64');
TEST('mov rax, qword [r8+rax*8]          ', [0x49,0x8b,0x04,0xc0                              ], 'MODE64');
TEST('mov rax, qword [rax+rdx]           ', [0x48,0x8b,0x04,0x10                              ], 'MODE64');
TEST('mov edx, 0x9                       ', [0xba,0x09,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov rax, qword [r14+rbx*8]         ', [0x49,0x8b,0x04,0xde                              ], 'MODE64');
TEST('mov dword [rdi], 0xc               ', [0xc7,0x07,0x0c,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rip+0x1e0c4]       ', [0x48,0x8b,0x05,0xc4,0xe0,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rsp+40]            ', [0x48,0x8b,0x44,0x24,0x28                         ], 'MODE64');
TEST('mov rax, qword [rip+0x1e3cf]       ', [0x48,0x8b,0x05,0xcf,0xe3,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rax+0x108]         ', [0x48,0x8b,0x80,0x08,0x01,0x00,0x00               ], 'MODE64');
TEST('mov byte [rax], dl                 ', [0x88,0x10                                        ], 'MODE64');
TEST('mov byte [rax], r10b               ', [0x44,0x88,0x10                                   ], 'MODE64');
TEST('mov byte [rax], 48                 ', [0xc6,0x00,0x30                                   ], 'MODE64');
TEST('mov rax, qword [rip+0x1d7d2]       ', [0x48,0x8b,0x05,0xd2,0xd7,0x01,0x00               ], 'MODE64');
TEST('mov qword [rsp+120], rax           ', [0x48,0x89,0x44,0x24,0x78                         ], 'MODE64');
TEST('mov rax, qword [rip+0x1d700]       ', [0x48,0x8b,0x05,0x00,0xd7,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x1d55c]       ', [0x48,0x8b,0x05,0x5c,0xd5,0x01,0x00               ], 'MODE64');
TEST('mov qword [rbp+39], rax            ', [0x48,0x89,0x45,0x27                              ], 'MODE64');
TEST('mov qword [rip+0x1e802], rax       ', [0x48,0x89,0x05,0x02,0xe8,0x01,0x00               ], 'MODE64');
TEST('mov r14d, 0xa                      ', [0x41,0xbe,0x0a,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov r12, qword [rsp+96]            ', [0x4c,0x8b,0x64,0x24,0x60                         ], 'MODE64');
TEST('mov rax, qword [rbx+0x138]         ', [0x48,0x8b,0x83,0x38,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rbx+0x110]         ', [0x48,0x8b,0x83,0x10,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x1d052]       ', [0x48,0x8b,0x05,0x52,0xd0,0x01,0x00               ], 'MODE64');
TEST('mov qword [rbp-8], rax             ', [0x48,0x89,0x45,0xf8                              ], 'MODE64');
TEST('mov rax, qword [rbp-24]            ', [0x48,0x8b,0x45,0xe8                              ], 'MODE64');
TEST('mov qword [rbp-32], rax            ', [0x48,0x89,0x45,0xe0                              ], 'MODE64');
TEST('mov qword [rbp-24], rax            ', [0x48,0x89,0x45,0xe8                              ], 'MODE64');
TEST('mov eax, 0x20                      ', [0xb8,0x20,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov r13d, 0x20                     ', [0x41,0xbd,0x20,0x00,0x00,0x00                    ], 'MODE64');
TEST('mov rax, qword [rip+0x1ca9a]       ', [0x48,0x8b,0x05,0x9a,0xca,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x1c4e5]       ', [0x48,0x8b,0x05,0xe5,0xc4,0x01,0x00               ], 'MODE64');
TEST('mov qword [rbp-1], rax             ', [0x48,0x89,0x45,0xff                              ], 'MODE64');
TEST('mov al, 48                         ', [0xb0,0x30                                        ], 'MODE64');
TEST('mov ecx, 0x9                       ', [0xb9,0x09,0x00,0x00,0x00                         ], 'MODE64');
TEST('mov dil, 48                        ', [0x40,0xb7,0x30                                   ], 'MODE64');
TEST('mov rax, qword [rbp-105]           ', [0x48,0x8b,0x45,0x97                              ], 'MODE64');
TEST('mov qword [rax], r8                ', [0x4c,0x89,0x00                                   ], 'MODE64');
TEST('mov rax, qword [rbp-49]            ', [0x48,0x8b,0x45,0xcf                              ], 'MODE64');
TEST('mov rax, qword [rip+0x1bc81]       ', [0x48,0x8b,0x05,0x81,0xbc,0x01,0x00               ], 'MODE64');
TEST('mov qword [rbp+23], rax            ', [0x48,0x89,0x45,0x17                              ], 'MODE64');
TEST('mov rax, qword [rbp+7]             ', [0x48,0x8b,0x45,0x07                              ], 'MODE64');
TEST('mov byte [r10], 48                 ', [0x41,0xc6,0x02,0x30                              ], 'MODE64');
TEST('mov rax, qword [rip+0x1d977]       ', [0x48,0x8b,0x05,0x77,0xd9,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rsp]               ', [0x48,0x8b,0x04,0x24                              ], 'MODE64');
TEST('mov r10, qword [r12]               ', [0x4d,0x8b,0x14,0x24                              ], 'MODE64');
TEST('mov r10d, dword [rax]              ', [0x44,0x8b,0x10                                   ], 'MODE64');
TEST('mov rax, qword [r12]               ', [0x49,0x8b,0x04,0x24                              ], 'MODE64');
TEST('mov rax, qword [rax+0x128]         ', [0x48,0x8b,0x80,0x28,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rax+0x130]         ', [0x48,0x8b,0x80,0x30,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rip+0x1a718]       ', [0x48,0x8b,0x05,0x18,0xa7,0x01,0x00               ], 'MODE64');
TEST('mov rax, qword [rax+0x90]          ', [0x48,0x8b,0x80,0x90,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rcx+0x90], rax          ', [0x48,0x89,0x81,0x90,0x00,0x00,0x00               ], 'MODE64');
TEST('mov qword [rsp+80], rax            ', [0x48,0x89,0x44,0x24,0x50                         ], 'MODE64');
TEST('mov rax, qword [rbp+0x4e0]         ', [0x48,0x8b,0x85,0xe0,0x04,0x00,0x00               ], 'MODE64');
TEST('mov qword [rsp+104], rax           ', [0x48,0x89,0x44,0x24,0x68                         ], 'MODE64');
TEST('mov rax, qword [rbp+0x4f0]         ', [0x48,0x8b,0x85,0xf0,0x04,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [r10+64]            ', [0x49,0x8b,0x42,0x40                              ], 'MODE64');
TEST('mov rax, qword [rcx+48]            ', [0x48,0x8b,0x41,0x30                              ], 'MODE64');
TEST('mov rax, qword [rcx+40]            ', [0x48,0x8b,0x41,0x28                              ], 'MODE64');
TEST('mov qword [rcx], rax               ', [0x48,0x89,0x01                                   ], 'MODE64');
TEST('mov rcx, qword [rsp+0xb8]          ', [0x48,0x8b,0x8c,0x24,0xb8,0x00,0x00,0x00          ], 'MODE64');
TEST('mov qword [rax+0x108], r12         ', [0x4c,0x89,0xa0,0x08,0x01,0x00,0x00               ], 'MODE64');
TEST('mov rsi, r12                       ', [0x49,0x8b,0xf4                                   ], 'MODE64');
TEST('mov qword [rbp-49], rax            ', [0x48,0x89,0x45,0xcf                              ], 'MODE64');
TEST('mov qword [rbp-41], rax            ', [0x48,0x89,0x45,0xd7                              ], 'MODE64');
TEST('mov rax, qword [rbp+127]           ', [0x48,0x8b,0x45,0x7f                              ], 'MODE64');
TEST('mov rax, qword [rbp-41]            ', [0x48,0x8b,0x45,0xd7                              ], 'MODE64');
TEST('mov qword [rsp+40], r12            ', [0x4c,0x89,0x64,0x24,0x28                         ], 'MODE64');
TEST('mov rdx, r12                       ', [0x49,0x8b,0xd4                                   ], 'MODE64');
TEST('mov qword [rbp+71], rax            ', [0x48,0x89,0x45,0x47                              ], 'MODE64');
TEST('mov qword [rbp-25], rax            ', [0x48,0x89,0x45,0xe7                              ], 'MODE64');
TEST('mov rax, qword [rsp+0xe8]          ', [0x48,0x8b,0x84,0x24,0xe8,0x00,0x00,0x00          ], 'MODE64');
TEST('mov r8, qword [rsp+0xc0]           ', [0x4c,0x8b,0x84,0x24,0xc0,0x00,0x00,0x00          ], 'MODE64');
TEST('mov rbx, qword [rsp+0xb8]          ', [0x48,0x8b,0x9c,0x24,0xb8,0x00,0x00,0x00          ], 'MODE64');
TEST('mov rax, qword [r13+48]            ', [0x49,0x8b,0x45,0x30                              ], 'MODE64');
TEST('mov rax, qword [rip+0x1c681]       ', [0x48,0x8b,0x05,0x81,0xc6,0x01,0x00               ], 'MODE64');
TEST('mov qword [rsi], rax               ', [0x48,0x89,0x06                                   ], 'MODE64');
TEST('mov rax, qword [rax+0xf0]          ', [0x48,0x8b,0x80,0xf0,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rdi+72]            ', [0x48,0x8b,0x47,0x48                              ], 'MODE64');
TEST('mov rax, qword [rdi+48]            ', [0x48,0x8b,0x47,0x30                              ], 'MODE64');
TEST('mov ecx, dword [rax]               ', [0x8b,0x08                                        ], 'MODE64');
TEST('mov r12, qword [rsp+56]            ', [0x4c,0x8b,0x64,0x24,0x38                         ], 'MODE64');
TEST('mov rax, qword [rbx+48]            ', [0x48,0x8b,0x43,0x30                              ], 'MODE64');
TEST('mov rax, qword [rdi+8]             ', [0x48,0x8b,0x47,0x08                              ], 'MODE64');
TEST('mov qword [rbx+8], rax             ', [0x48,0x89,0x43,0x08                              ], 'MODE64');
TEST('mov qword [rsi+8], rax             ', [0x48,0x89,0x46,0x08                              ], 'MODE64');
TEST('mov edx, dword [rax]               ', [0x8b,0x10                                        ], 'MODE64');
TEST('mov rax, qword [rbp+0x90]          ', [0x48,0x8b,0x85,0x90,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rbp+0x88]          ', [0x48,0x8b,0x85,0x88,0x00,0x00,0x00               ], 'MODE64');
TEST('mov rax, qword [rbp+40]            ', [0x48,0x8b,0x45,0x28                              ], 'MODE64');
TEST('mov rax, qword [rbp+0xd8]          ', [0x48,0x8b,0x85,0xd8,0x00,0x00,0x00               ], 'MODE64');

TEST('mul dword [esp+20]', [0xf7,0x64,0x24,0x14], 'MODE32');
TEST('mul ecx           ', [0xf7,0xe1          ], 'MODE32');

TEST('neg ecx', [0xf7,0xd9     ], 'MODE32');
TEST('neg edi', [0xf7,0xdf     ], 'MODE32');
TEST('neg rax', [0x48,0xf7,0xd8], 'MODE64');

TEST('not ecx', [0xf7,0xd1     ], 'MODE32');
TEST('not edi', [0xf7,0xd7     ], 'MODE32');
TEST('not rax', [0x48,0xf7,0xd0], 'MODE64');

TEST('or ecx, 1             ', [0x83,0xc9,0x01               ], 'MODE32');
TEST('or ecx, eax           ', [0x0b,0xc8                    ], 'MODE32');
TEST('or edi, 1             ', [0x83,0xcf,0x01               ], 'MODE32');
TEST('or edi, 2             ', [0x83,0xcf,0x02               ], 'MODE32');
TEST('or ecx, 32            ', [0x83,0xc9,0x20               ], 'MODE32');
TEST('or eax, edi           ', [0x0b,0xc7                    ], 'MODE32');
TEST('or dword [edi], 4     ', [0x83,0x0f,0x04               ], 'MODE32');
TEST('or dword [edi], 0x304 ', [0x81,0x0f,0x04,0x03,0x00,0x00], 'MODE32');
TEST('or dword [edi], 2     ', [0x83,0x0f,0x02               ], 'MODE32');
TEST('or dword [edi], 0x200 ', [0x81,0x0f,0x00,0x02,0x00,0x00], 'MODE32');
TEST('or dword [edi], 0x100 ', [0x81,0x0f,0x00,0x01,0x00,0x00], 'MODE32');
TEST('or ecx, 0x400         ', [0x81,0xc9,0x00,0x04,0x00,0x00], 'MODE32');
TEST('or eax, ecx           ', [0x0b,0xc1                    ], 'MODE32');
TEST('or ecx, ecx           ', [0x0b,0xc9                    ], 'MODE32');
TEST('or edi, 0x200000      ', [0x81,0xcf,0x00,0x00,0x20,0x00], 'MODE32');
TEST('or esi, ecx           ', [0x0b,0xf1                    ], 'MODE32');
TEST('or edi, eax           ', [0x0b,0xf8                    ], 'MODE32');
TEST('or edx, ecx           ', [0x0b,0xd1                    ], 'MODE32');
TEST('or edi, ecx           ', [0x0b,0xf9                    ], 'MODE32');
TEST('or edi, dword [ebp-92]', [0x0b,0x7d,0xa4               ], 'MODE32');
TEST('or edi, dword [ebp-68]', [0x0b,0x7d,0xbc               ], 'MODE32');
TEST('or ebx, ecx           ', [0x0b,0xd9                    ], 'MODE32');
TEST('or ecx, 8             ', [0x83,0xc9,0x08               ], 'MODE32');
TEST('or ecx, 4             ', [0x83,0xc9,0x04               ], 'MODE32');
TEST('or ecx, 2             ', [0x83,0xc9,0x02               ], 'MODE32');
TEST('or ecx, 0x80000       ', [0x81,0xc9,0x00,0x00,0x08,0x00], 'MODE32');
TEST('or ecx, 0x300         ', [0x81,0xc9,0x00,0x03,0x00,0x00], 'MODE32');
TEST('or ecx, edi           ', [0x0b,0xcf                    ], 'MODE32');
TEST('or ecx, 0x100         ', [0x81,0xc9,0x00,0x01,0x00,0x00], 'MODE32');
TEST('or ecx, 0x10000       ', [0x81,0xc9,0x00,0x00,0x01,0x00], 'MODE32');
TEST('or ecx, 0x20000       ', [0x81,0xc9,0x00,0x00,0x02,0x00], 'MODE32');
TEST('or ecx, 0x40000       ', [0x81,0xc9,0x00,0x00,0x04,0x00], 'MODE32');
TEST('or ecx, 0x200         ', [0x81,0xc9,0x00,0x02,0x00,0x00], 'MODE32');
TEST('or ecx, 0x1000000     ', [0x81,0xc9,0x00,0x00,0x00,0x01], 'MODE32');
TEST('or ecx, 0x3000000     ', [0x81,0xc9,0x00,0x00,0x00,0x03], 'MODE32');
TEST('or ecx, 0x2000000     ', [0x81,0xc9,0x00,0x00,0x00,0x02], 'MODE32');
TEST('or ecx, esi           ', [0x0b,0xce                    ], 'MODE32');
TEST('or rax, 1             ', [0x48,0x83,0xc8,0x01          ], 'MODE64');
TEST('or byte [rax], 4      ', [0x80,0x08,0x04               ], 'MODE64');
TEST('or byte [rax], 8      ', [0x80,0x08,0x08               ], 'MODE64');

TEST('pop ecx', [0x59     ], 'MODE32');
TEST('pop edi', [0x5f     ], 'MODE32');
TEST('pop r12', [0x41,0x5c], 'MODE64');

TEST('push dword [ebp+8]    ', [0xff,0x75,0x08               ], 'MODE32');
TEST('push edi              ', [0x57                         ], 'MODE32');
TEST('push ecx              ', [0x51                         ], 'MODE32');
TEST('push dword [edi]      ', [0xff,0x37                    ], 'MODE32');
TEST('push dword [esi+4]    ', [0xff,0x76,0x04               ], 'MODE32');
TEST('push dword [ebp-8]    ', [0xff,0x75,0xf8               ], 'MODE32');
TEST('push dword [ecx]      ', [0xff,0x31                    ], 'MODE32');
TEST('push dword [ecx+eax]  ', [0xff,0x34,0x01               ], 'MODE32');
TEST('push dword [eax+ecx]  ', [0xff,0x34,0x08               ], 'MODE32');
TEST('push dword [esi+20]   ', [0xff,0x76,0x14               ], 'MODE32');
TEST('push dword [esi+0xc0] ', [0xff,0xb6,0xc0,0x00,0x00,0x00], 'MODE32');
TEST('push dword [esi+0x21c]', [0xff,0xb6,0x1c,0x02,0x00,0x00], 'MODE32');
TEST('push dword [ecx+4]    ', [0xff,0x71,0x04               ], 'MODE32');
TEST('push dword [esp+20]   ', [0xff,0x74,0x24,0x14          ], 'MODE32');
TEST('push dword [edi+4]    ', [0xff,0x77,0x04               ], 'MODE32');
TEST('push r12              ', [0x41,0x54                    ], 'MODE64');

TEST('rcr ecx, 1', [0xd1,0xd9], 'MODE32');

TEST('sar rax, 1', [0x48,0xd1,0xf8], 'MODE64');

TEST('sbb edi, edi           ', [0x1b,0xff          ], 'MODE32');
TEST('sbb ecx, ecx           ', [0x1b,0xc9          ], 'MODE32');
TEST('sbb edx, dword [esp+20]', [0x1b,0x54,0x24,0x14], 'MODE32');
TEST('sbb rax, rax           ', [0x48,0x1b,0xc0     ], 'MODE64');
TEST('sbb r12, r12           ', [0x4d,0x1b,0xe4     ], 'MODE64');

TEST('shl ecx, 1 ', [0xd1,0xe1], 'MODE32');
TEST('shl edi, cl', [0xd3,0xe7], 'MODE32');

TEST('shr dword [ebp-8], 1', [0xd1,0x6d,0xf8], 'MODE32');
TEST('shr ecx, 1          ', [0xd1,0xe9     ], 'MODE32');
TEST('shr edi, 1          ', [0xd1,0xef     ], 'MODE32');
TEST('shr rax, cl         ', [0x48,0xd3,0xe8], 'MODE64');

TEST('sub edi, 0x3fe            ', [0x81,0xef,0xfe,0x03,0x00,0x00], 'MODE32');
TEST('sub ecx, eax              ', [0x2b,0xc8                    ], 'MODE32');
TEST('sub ecx, edx              ', [0x2b,0xca                    ], 'MODE32');
TEST('sub edi, dword [ebp-0x224]', [0x2b,0xbd,0xdc,0xfd,0xff,0xff], 'MODE32');
TEST('sub edi, eax              ', [0x2b,0xf8                    ], 'MODE32');
TEST('sub edi, 4                ', [0x83,0xef,0x04               ], 'MODE32');
TEST('sub eax, ecx              ', [0x2b,0xc1                    ], 'MODE32');
TEST('sub ecx, 4                ', [0x83,0xe9,0x04               ], 'MODE32');
TEST('sub ecx, 8                ', [0x83,0xe9,0x08               ], 'MODE32');
TEST('sub ecx, 48               ', [0x83,0xe9,0x30               ], 'MODE32');
TEST('sub ecx, 16               ', [0x83,0xe9,0x10               ], 'MODE32');
TEST('sub edi, 2                ', [0x83,0xef,0x02               ], 'MODE32');
TEST('sub edi, 3                ', [0x83,0xef,0x03               ], 'MODE32');
TEST('sub esi, ecx              ', [0x2b,0xf1                    ], 'MODE32');
TEST('sub edi, dword [esi+8]    ', [0x2b,0x7e,0x08               ], 'MODE32');
TEST('sub eax, edi              ', [0x2b,0xc7                    ], 'MODE32');
TEST('sub edi, ebx              ', [0x2b,0xfb                    ], 'MODE32');
TEST('sub ebx, ecx              ', [0x2b,0xd9                    ], 'MODE32');
TEST('sub edx, ecx              ', [0x2b,0xd1                    ], 'MODE32');
TEST('sub ecx, 1                ', [0x83,0xe9,0x01               ], 'MODE32');
TEST('sub ecx, edi              ', [0x2b,0xcf                    ], 'MODE32');
TEST('sub edi, ecx              ', [0x2b,0xf9                    ], 'MODE32');
TEST('sub eax, dword [ebp+8]    ', [0x2b,0x45,0x08               ], 'MODE32');
TEST('sub esi, edi              ', [0x2b,0xf7                    ], 'MODE32');
TEST('sub ecx, dword [ebp-8]    ', [0x2b,0x4d,0xf8               ], 'MODE32');
TEST('sub ebx, edi              ', [0x2b,0xdf                    ], 'MODE32');
TEST('sub edi, 1                ', [0x83,0xef,0x01               ], 'MODE32');
TEST('sub ecx, ebx              ', [0x2b,0xcb                    ], 'MODE32');
TEST('sub edi, 96               ', [0x83,0xef,0x60               ], 'MODE32');
TEST('sub ecx, 2                ', [0x83,0xe9,0x02               ], 'MODE32');
TEST('sub edi, 0x3ffe           ', [0x81,0xef,0xfe,0x3f,0x00,0x00], 'MODE32');
TEST('sub rcx, rax              ', [0x48,0x2b,0xc8               ], 'MODE64');
TEST('sub rax, r14              ', [0x49,0x2b,0xc6               ], 'MODE64');
TEST('sub rdi, rax              ', [0x48,0x2b,0xf8               ], 'MODE64');
TEST('sub r15, r12              ', [0x4d,0x2b,0xfc               ], 'MODE64');
TEST('sub rsi, r12              ', [0x49,0x2b,0xf4               ], 'MODE64');
TEST('sub rsp, rax              ', [0x48,0x2b,0xe0               ], 'MODE64');
TEST('sub rax, rdi              ', [0x48,0x2b,0xc7               ], 'MODE64');
TEST('sub rax, rcx              ', [0x48,0x2b,0xc1               ], 'MODE64');
TEST('sub rbx, rax              ', [0x48,0x2b,0xd8               ], 'MODE64');
TEST('sub rcx, r12              ', [0x49,0x2b,0xcc               ], 'MODE64');
TEST('sub rdx, rax              ', [0x48,0x2b,0xd0               ], 'MODE64');
TEST('sub r10, rax              ', [0x4c,0x2b,0xd0               ], 'MODE64');

TEST('test ecx, ecx            ', [0x85,0xc9                         ], 'MODE32');
TEST('test edi, edi            ', [0x85,0xff                         ], 'MODE32');
TEST('test ecx, 0xfffff        ', [0xf7,0xc1,0xff,0xff,0x0f,0x00     ], 'MODE32');
TEST('test ecx, 0x100000       ', [0xf7,0xc1,0x00,0x00,0x10,0x00     ], 'MODE32');
TEST('test ecx, 0x8000000      ', [0xf7,0xc1,0x00,0x00,0x00,0x08     ], 'MODE32');
TEST('test ecx, 0x10000000     ', [0xf7,0xc1,0x00,0x00,0x00,0x10     ], 'MODE32');
TEST('test byte [ecx+4], 32    ', [0xf6,0x41,0x04,0x20               ], 'MODE32');
TEST('test edi, 0x3            ', [0xf7,0xc7,0x03,0x00,0x00,0x00     ], 'MODE32');
TEST('test byte [eax+edi+4], 1 ', [0xf6,0x44,0x38,0x04,0x01          ], 'MODE32');
TEST('test byte [ecx+eax+4], 64', [0xf6,0x44,0x01,0x04,0x40          ], 'MODE32');
TEST('test dword [esi+112], ecx', [0x85,0x4e,0x70                    ], 'MODE32');
TEST('test dword [edi+112], ecx', [0x85,0x4f,0x70                    ], 'MODE32');
TEST('test dword [edi], 0x100  ', [0xf7,0x07,0x00,0x01,0x00,0x00     ], 'MODE32');
TEST('test dword [edi], 0x200  ', [0xf7,0x07,0x00,0x02,0x00,0x00     ], 'MODE32');
TEST('test byte [edi], 7       ', [0xf6,0x07,0x07                    ], 'MODE32');
TEST('test byte [edi], 2       ', [0xf6,0x07,0x02                    ], 'MODE32');
TEST('test esi, ecx            ', [0x85,0xce                         ], 'MODE32');
TEST('test ecx, 0x3            ', [0xf7,0xc1,0x03,0x00,0x00,0x00     ], 'MODE32');
TEST('test dword [ecx+4], 0x6  ', [0xf7,0x41,0x04,0x06,0x00,0x00,0x00], 'MODE32');
TEST('test byte [eax+ecx+4], 1 ', [0xf6,0x44,0x08,0x04,0x01          ], 'MODE32');
TEST('test edi, 0xf            ', [0xf7,0xc7,0x0f,0x00,0x00,0x00     ], 'MODE32');
TEST('test ecx, 0x80000        ', [0xf7,0xc1,0x00,0x00,0x08,0x00     ], 'MODE32');
TEST('test ecx, 0x40000        ', [0xf7,0xc1,0x00,0x00,0x04,0x00     ], 'MODE32');
TEST('test byte [ecx], 16      ', [0xf6,0x01,0x10                    ], 'MODE32');
TEST('test byte [edi], 16      ', [0xf6,0x07,0x10                    ], 'MODE32');
TEST('test rax, rax            ', [0x48,0x85,0xc0                    ], 'MODE64');
TEST('test r11, rax            ', [0x49,0x85,0xc3                    ], 'MODE64');
TEST('test r12, r12            ', [0x4d,0x85,0xe4                    ], 'MODE64');
TEST('test qword [r14], rax    ', [0x49,0x85,0x06                    ], 'MODE64');
TEST('test rax, 0x7            ', [0x48,0xa9,0x07,0x00,0x00,0x00     ], 'MODE64');
TEST('test byte [rax], 16      ', [0xf6,0x00,0x10                    ], 'MODE64');

TEST('xor edi, edi                ', [0x33,0xff                         ], 'MODE32');
TEST('xor ecx, ecx                ', [0x33,0xc9                         ], 'MODE32');
TEST('xor ecx, dword [eax]        ', [0x33,0x08                         ], 'MODE32');
TEST('xor dword [eax], ecx        ', [0x31,0x08                         ], 'MODE32');
TEST('xor ecx, ebp                ', [0x33,0xcd                         ], 'MODE32');
TEST('xor ecx, 0x49656e69         ', [0x81,0xf1,0x69,0x6e,0x65,0x49     ], 'MODE32');
TEST('xor edi, dword [0x693b5008] ', [0x33,0x3d,0x08,0x50,0x3b,0x69     ], 'MODE32');
TEST('xor ecx, dword [eax+esi]    ', [0x33,0x0c,0x30                    ], 'MODE32');
TEST('xor ecx, dword [edx+esi]    ', [0x33,0x0c,0x32                    ], 'MODE32');
TEST('xor dword [ecx], edi        ', [0x31,0x39                         ], 'MODE32');
TEST('xor bh, byte [ecx]          ', [0x32,0x39                         ], 'MODE32');
TEST('xor edi, dword [ecx]        ', [0x33,0x39                         ], 'MODE32');
TEST('xor ecx, dword [ebp-20]     ', [0x33,0x4d,0xec                    ], 'MODE32');
TEST('xor ecx, dword [ebp-4]      ', [0x33,0x4d,0xfc                    ], 'MODE32');
TEST('xor ecx, eax                ', [0x33,0xc8                         ], 'MODE32');
TEST('xor ebx, dword [ecx]        ', [0x33,0x19                         ], 'MODE32');
TEST('xor dword [ebp-8], eax      ', [0x31,0x45,0xf8                    ], 'MODE32');
TEST('xor edi, ecx                ', [0x33,0xf9                         ], 'MODE32');
TEST('xor ecx, esi                ', [0x33,0xce                         ], 'MODE32');
TEST('xor ecx, dword [ebp+12]     ', [0x33,0x4d,0x0c                    ], 'MODE32');
TEST('xor eax, ecx                ', [0x33,0xc1                         ], 'MODE32');
TEST('xor rax, rsp                ', [0x48,0x33,0xc4                    ], 'MODE64');
TEST('xor rax, qword [rip+0x27daa]', [0x48,0x33,0x05,0xaa,0x7d,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27d8e]', [0x48,0x33,0x05,0x8e,0x7d,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27d72]', [0x48,0x33,0x05,0x72,0x7d,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27d56]', [0x48,0x33,0x05,0x56,0x7d,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27d36]', [0x48,0x33,0x05,0x36,0x7d,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27cf8]', [0x48,0x33,0x05,0xf8,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27c99]', [0x48,0x33,0x05,0x99,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27c7e]', [0x48,0x33,0x05,0x7e,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27c60]', [0x48,0x33,0x05,0x60,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27c42]', [0x48,0x33,0x05,0x42,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27c24]', [0x48,0x33,0x05,0x24,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27c06]', [0x48,0x33,0x05,0x06,0x7c,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27be8]', [0x48,0x33,0x05,0xe8,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27bca]', [0x48,0x33,0x05,0xca,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27bac]', [0x48,0x33,0x05,0xac,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27b8e]', [0x48,0x33,0x05,0x8e,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27b70]', [0x48,0x33,0x05,0x70,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27b52]', [0x48,0x33,0x05,0x52,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27b34]', [0x48,0x33,0x05,0x34,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27b16]', [0x48,0x33,0x05,0x16,0x7b,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27af8]', [0x48,0x33,0x05,0xf8,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27ae1]', [0x48,0x33,0x05,0xe1,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27abc]', [0x48,0x33,0x05,0xbc,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27a9e]', [0x48,0x33,0x05,0x9e,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27a80]', [0x48,0x33,0x05,0x80,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27a62]', [0x48,0x33,0x05,0x62,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27a44]', [0x48,0x33,0x05,0x44,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27a26]', [0x48,0x33,0x05,0x26,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27a08]', [0x48,0x33,0x05,0x08,0x7a,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x279ea]', [0x48,0x33,0x05,0xea,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x279cc]', [0x48,0x33,0x05,0xcc,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x279ae]', [0x48,0x33,0x05,0xae,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27990]', [0x48,0x33,0x05,0x90,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27972]', [0x48,0x33,0x05,0x72,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27954]', [0x48,0x33,0x05,0x54,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27936]', [0x48,0x33,0x05,0x36,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27918]', [0x48,0x33,0x05,0x18,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x27901]', [0x48,0x33,0x05,0x01,0x79,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x278e3]', [0x48,0x33,0x05,0xe3,0x78,0x02,0x00], 'MODE64');
TEST('xor rax, rax                ', [0x48,0x33,0xc0                    ], 'MODE64');
TEST('xor rax, rbp                ', [0x48,0x33,0xc5                    ], 'MODE64');
TEST('xor rax, qword [rip+0x212e6]', [0x48,0x33,0x05,0xe6,0x12,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x21291]', [0x48,0x33,0x05,0x91,0x12,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x21247]', [0x48,0x33,0x05,0x47,0x12,0x02,0x00], 'MODE64');
TEST('xor rax, qword [rip+0x2120e]', [0x48,0x33,0x05,0x0e,0x12,0x02,0x00], 'MODE64');
TEST('xor qword [rbp+16], rax     ', [0x48,0x31,0x45,0x10               ], 'MODE64');
TEST('xor rax, qword [rbp+32]     ', [0x48,0x33,0x45,0x20               ], 'MODE64');
TEST('xor rax, qword [rbp+16]     ', [0x48,0x33,0x45,0x10               ], 'MODE64');
TEST('xor rax, rcx                ', [0x48,0x33,0xc1                    ], 'MODE64');

